[英]Password protected screen in android
我已經開發了一個存儲所有私人數據信息的應用程序,因此我開發了受密碼保護的屏幕。
當我打開應用程序時,密碼屏幕會正確顯示,但是登錄后,如果我正在編輯任何內容,然后按主屏幕按鈕,我會遇到一個問題,該應用程序會重新打開到沒有密碼的受保護屏幕。
如何將其發送回簡歷上的密碼屏幕?
我需要找出一種方法來在“片段”和“活動”上按下“主頁”按鈕? 還是有更好的選擇?
有人可以幫我解決這個問題嗎?
謝謝!
發生的情況是您的應用程序被殺死,所有輸入的數據都被刷新或刪除。
您可以使用SharedPreference
來存儲可以在打開應用程序時再次檢索的數據。
我建議您保存在onPause()
或onDestroy()
上輸入的用戶名和密碼,然后在onCreate()
上重現它(如果有的話)。
// MY_PREFS_NAME - a static String variable like:
//public static final String MY_PREFS_NAME = "MyPrefsFile";
SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
editor.putString("name", "xyz");
editor.putString("password","abc");
editor.commit();
SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
String restoredText = prefs.getString("text", null);
if (restoredText != null) {
String name = prefs.getString("name", "No name defined");//"No name defined" is the default value.
String password= prefs.getString("idName", "No name defined");
}
編輯
如果您希望某個特定活動首先在應用程序中打開,則需要使用以下命令在AndroidManifest.xml
進行注冊:
<activity android:name=".put your started activity name here"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
在此處注冊您的密碼屏幕,只要您打開應用程序,它將打開。
而且,如果您不想更改啟動應用程序而只想將其發送到另一個活動,建議您使用intents
。
Intent i = new Intent(Source.java, Destination.class);
startActivity(i);
finish();
當您調用onPause和onDestroy時,將使用該用戶名+密碼自動注銷服務器。 然后,每次登錄時,請檢查是否已連接/登錄到服務器(如果不是)(總是這樣),則切換到登錄活動。 希望這會有所幫助。 :)
您需要重寫Android inbuild方法onSaveInstanceState(Bundle savedInstanceState)。 這更容易並且運行良好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.