簡體   English   中英

按home鍵后保存Activity的狀態

[英]After pressing home button saving the state of Activity

我有兩個活動, Activity1Activity2 Activity1是啟動器活動,從頭開始。 現在當我從activity2按下Home按鈕並再次從所有應用程序打開應用程序時, Activity1正在打開。 我想打開按下主頁按鈕時打開的相同活動。 我需要保存activity2狀態2,但我怎么也沒有任何線索。

我看着這個這個,但我仍然沒有清楚地了解如何做到這一點。 請幫助我,因為我是android的新手。

當您按下“主頁”按鈕時,您的活動將轉到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()恢復,您可以查看以下答案:

在onPause中保存活動狀態

對於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.

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