所以最后我只需要更多关于如何实现每个人都建议的数据保存功能的信息,并且 android 有,我在这里找到了我需要的答案:How to make an android app return to last open Activity when relaunched?
为了解决
我需要添加的问题:|1| 一个新的Activity
|2| <action>
和<category>
活动标签 |3| SharedPreference
我需要保留的每项活动中的二传手。
根据@JosefPfleger 的说明,我创建了一个名为的新空白活动,并RestorePrevActivity
在 android 清单中将其设置为MAIN
and我还删除了我的第一个活动中的所有意图过滤器,因为它们在第一次创建应用程序后默认存在。LAUNCHER
DEFAULT
<activity
android:name=".FirstActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".SecondActivity"
android:label="@string/title_activity_second"
android:screenOrientation="portrait"
android:launchMode="standard">
</activity>
<activity
android:name=".LastActivity"
android:label="@string/title_activity_last"
android:screenOrientation="portrait"
android:launchMode="standard">
</activity>
<activity
android:name=".RestorePrevActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
设置新活动的操作和类别后,我需要向活动添加代码。这被添加onCreate()
到RecoverPrevActivity
`
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Class<?> activityClass;
try {
SharedPreferences prefs = getSharedPreferences("X", MODE_PRIVATE);
activityClass = Class.forName(
prefs.getString("lastActivity", FareActivity.class.getName()));
} catch(ClassNotFoundException ex) {
activityClass = FareActivity.class;
}
startActivity(new Intent(this, activityClass));
}
如果FirstActivity
找不到以前的活动,则将替换为您将运行的默认活动。
- 最后我浏览了我的活动并添加了一个
OnPause()
保存活动名称的活动。
我将以下代码段添加到我的所有其他活动中,现在它可以完美运行。
@Override
protected void onPause() {
super.onPause();
SharedPreferences prefs = getSharedPreferences("X", MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("thisActivity", getClass().getName());
editor.commit();
}
wherethisActivity
更改为当前活动的名称。
结果
我能够启动我的应用程序,启动计时器,然后按主页按钮或应用程序切换器以安全地切换应用程序甚至锁定屏幕,并在返回时成功带回我正在不间断运行的计时器!我对其进行了另一次测试并运行了部落冲突,这是一款记忆力很强的游戏,我还在后台运行我的应用程序的情况下观看了大约 30 段的 Youtube 视频,然后回到我的应用程序查看时间是否正确并且在我运行时运行完美走了。
感谢大家的帮助!-斯蒂芬