2012-04-23 84 views
0

在我的應用程序中,我有一個登錄和註銷機制。我想在用戶按下注銷按鈕時清除任務堆棧,以便當他再次啓動應用程序時,他必須再次登錄。我在網上看了起來,在大多數情況下,人們用這個來完成它:此代碼出現這種情況註銷功能android

Intent i = new Intent(Intent.ACTION_MAIN); 
i.addCategory(Intent.CATEGORY_HOME); 
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); 
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(i); 
finish(); 

首頁 - >登錄活動(主發射活動)[uername和密碼字段爲空] - >點擊註銷 - >首頁 ,然後當我這樣做:

從家裏 - >啓動應用程序(在登錄屏幕上的用戶名和密碼仍然存在) - >按回車鍵導航回家 - >再次啓動應用程序 - >清除用戶名和密碼

什麼是編寫註銷功能的更好方法?

+0

文字爲空在主要活動的onResume()函數中。它的工作正常,但任何其他解決方案是最歡迎的! :) – Ash 2012-04-23 03:18:30

回答

0

您可以將用戶名和密碼保存在共享首選項數據庫中。當用戶註銷時,然後從相同密鑰中的數據庫中清除值。

如果用戶在沒有註銷的情況下直接退出應用程序,如果用戶名和密碼已經存在,您可以將它們顯示在edittext中。

在數據庫

SharedPreferences settings = getSharedPreferences("DB_NAME", 0); 
    SharedPreferences.Editor editor = settings.edit(); 
    editor.putString("user", username); 
    editor.putString("pass", password); 
    editor.commit(); 

保存從數據庫中清除

SharedPreferences settings = getSharedPreferences("DB_NAME", 0); 
    SharedPreferences.Editor editor = settings.edit(); 
    editor.remove("user"); 
    editor.remove("pass"); 
    editor.clear(); 
    editor.commit(); 
+0

我不想這樣做,因爲我已經在共享偏好中保存了許多與用戶相關的信息。無論如何感謝您的答案! :) – Ash 2012-04-23 05:56:41