我的应用程序在不同的活动之间切换,每个活动在切换到另一个活动后被杀死。这工作得很好,但我想做的是,当用户杀死应用程序(通过按返回键或以其他方式)时,它的最后一次运行活动是下次启动应用程序时。
我试过了 ...
onSaveInstanceState(Bundle bundle)
...但这似乎不适用于其他活动。
还有另一种方法吗?我也考虑过直接编辑清单,但得出的结论是它可能不起作用并且会很脏。
我的应用程序在不同的活动之间切换,每个活动在切换到另一个活动后被杀死。这工作得很好,但我想做的是,当用户杀死应用程序(通过按返回键或以其他方式)时,它的最后一次运行活动是下次启动应用程序时。
我试过了 ...
onSaveInstanceState(Bundle bundle)
...但这似乎不适用于其他活动。
还有另一种方法吗?我也考虑过直接编辑清单,但得出的结论是它可能不起作用并且会很脏。
据我了解,例如,您有 3 个活动ActivityA
:ActivityB
和ActivityC
。如果用户通过 退出应用程序ActivityB
,然后再次启动应用程序,则您ActivityB
要先启动。
您可以通过两种方式做到这一点。
首先,您可以拥有一个Activity
带有占位符的单曲,其中包含 3 个片段之一。然后您可以根据需要替换片段。
其次,您可以将上次打开的活动存储在首选项中,使用SharedPreferences
. 您可以在您拥有onStart()
的每个活动中执行此操作ActivityX
,并在确定要开始哪个活动时阅读它。
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
// save:
Editor edit = prefs.edit();
edit.putString("lastActivity", getClass().getName());
edit.commit();
// restore later:
String activityName = prefs.getString("lastActivity", YourActivityA.getClass().getName());
// if (activityName == null) activityName = YourActivityA.getClass().getName(); /// 根据需要启动该活动