[英]After pressing home button saving the state of Activity
當您按下“主頁”按鈕時,您的活動將轉到onPause()
。
因此,我個人建議您覆蓋onPause()
方法,該方法不僅可以處理按下的“主頁”按鈕,還可以處理其他情況。
在您的情況下,它只與onPause()
和onResume()
相關,因此您可以嘗試將狀態放入SharedPreferences
或Internal / External存儲。
說:
在你的onPause()
方法中,執行以下操作:
// Use Shared Preferences to save data
SharedPreferences previewSizePref = getSharedPreferences("PREF",MODE_PRIVATE);
SharedPreferences.Editor prefEditor = previewSizePref.edit();
prefEditor.putInt("x", somethingA);
prefEditor.putInt("y", somethingB);
prefEditor.commit();
並在您的onResume()
,檢索保存的數據,如:
SharedPreferences previewSizePref = getSharedPreferences("PREF",MODE_PRIVATE);
if (previewSizePref.contains("x") && previewSizePref.contains("y")) {
//your saved data exists, do something
} else {
// handle the circumstances that the saved data doesn't exist
}
要在onPause()
保存狀態並在onResume()
恢復,您可以查看以下答案:
對於SharedPreferences,您可以查看API文檔: 數據存儲 - 共享首選項
您所描述的內容應該是Android行為的標准,如果它沒有按照您的描述進行操作,那么您可能會在其他地方覆蓋此行為,可能在您的清單中。
如果您創建一個新的Android應用程序並創建一個簡單的兩頁應用程序,其中活動A作為啟動器而活動B作為第二頁,那么您的清單將如下所示,應用程序將顯示您描述的行為。
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".ActivityA"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ActivityB"
android:label="@string/title_activity_main" >
</activity>
</application>
仔細檢查您的清單看起來與此類似 - 活動B沒有標志,只是它在清單中存在的聲明。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.