簡體   English   中英

Android中受密碼保護的屏幕

[英]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)。 這更容易並且運行良好。

使用“保存實例狀態”保存Android活動狀態

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM