我有一个包含多个活动的应用程序。 My A Activity具有Manifest Intent过滤器参数:action.MAIN 和category.LAUNCHER。在它被加载后我称之为活动B和 完成()因为我不再使用它了。
运行我的应用程序后,从活动A转到B并按Home 按钮,当我从应用程序菜单或从中重新启动它时 它的市场应用程序(不是通过长按主页按钮),它开始 来自A活动,不保存其最后一个活动B.
我绝对知道可以重新启动应用程序 从它的上一个活动(市场的一些应用程序支持 它)我认为这可以通过Manifest参数来确定 但我不知道是哪一个。
有没有人知道如何实现它,以便我的应用程序可以重新启动 从上一个活动B?
由于 ayanir
答案 0 :(得分:5)
虽然我知道这是一个老问题,但我正在努力解决这个问题而无法在SO上找到答案。所以,这是我的(非常新手)答案:
不,我认为通过搞乱清单可以做到这一点 - 你只能从主屏幕为每个应用启动一个固定的活动。但是,你可以做的就是从那个起点开始你想要的任何活动,Android可以很快地完成它,你永远不会看到第一个。
虽然这感觉非常像黑客,但我在启动活动的onResume()方法中实现了此路由,并使用sharedPreferences来跟踪要启动的活动:
final Class<? extends Activity> activityClass;
SharedPreferences prefs = getSharedPreferences("sharedPrefs", MODE_PRIVATE);
int activityID = prefs.getInt("whichActivity", -1);
if (activityID == Constants.ACTIVITY_ID_MAINSCREEN) {
activityClass = MainScreen.class;
} else {
activityClass = null; return;
}
Intent newActivity = new Intent(this, activityClass);
this.startActivity(newActivity);
答案 1 :(得分:1)
最近有一些非常相似的问题。最好先搜索网站,以确保不会询问重复的问题。
例如,下面链接的问题表明这种行为正在发生,因为开发人员正在使用Eclipse调试器启动他们的应用程序。另一个人遇到这个问题是因为他们直接从Eclipse启动应用程序,而不是通过手动按下启动器图标来干净地启动。
答案 2 :(得分:0)
因此在Android中开发应用时需要考虑一些事项。其中一个重要的事情是应用程序生命周期,如果你还没有,那么我会建议video。发生的情况是,应用程序可以在任何时间点被杀死并重置,您需要保存应用程序的状态,以便您可以随时恢复它。如果您从启动器打开应用程序,您将始终进入启动应用程序的活动,如果您想跳到下一个存储该信息所需的活动,然后跳转到代码中的活动。
另请查看有关SavingPersistentState