我有两个活动,Activity1
和Activity2
。Activity1
是从头开始的启动器活动。现在,当我activity2
从所有应用程序中按下主页按钮并再次打开应用程序时,Activity1
它正在打开。我想打开在按下主页按钮时打开的同一个活动。我需要保存状态activity2
,但我没有任何线索。
user1310152
问问题
5163 次
2 回答
4
当您按下“主页”按钮时,您的活动将转到onPause()
。
所以我个人建议你重写onPause()
不仅可以处理按下“主页”按钮而且还可以处理其他情况的方法。
在您的情况下,它只是相关的onPause()
,onResume()
因此您可以尝试将状态放入SharedPreferences
或内部/外部存储中。
说:
在您的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 文档:Data Storage - Shared Preferences
于 2012-10-30T11:39:34.693 回答
0
您所描述的应该是 Android 行为的标准,如果它没有按照您所描述的那样做,那么您可能已经在其他地方覆盖了这种行为,可能在您的清单中。
如果您创建一个新的 Android 应用程序并制作一个简单的两页应用程序,其中 Activity A 作为启动器,Activity 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 没有标志,只是声明它存在于您的清单中。
于 2012-10-30T11:48:08.230 回答