0

我的应用程序在不同的活动之间切换,每个活动在切换到另一个活动后被杀死。这工作得很好,但我想做的是,当用户杀死应用程序(通过按返回键或以其他方式)时,它的最后一次运行活动是下次启动应用程序时。

我试过了 ...

onSaveInstanceState(Bundle bundle)

...但这似乎不适用于其他活动。

还有另一种方法吗?我也考虑过直接编辑清单,但得出的结论是它可能不起作用并且会很脏。

4

1 回答 1

1

据我了解,例如,您有 3 个活动ActivityAActivityBActivityC。如果用户通过 退出应用程序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(); /// 根据需要启动该活动

于 2013-02-18T18:07:48.633 回答