【发布时间】:2016-03-17 16:31:09
【问题描述】:
我设计了一个包含多个活动的应用。在任何时候,后栈中都只有一个活动实例。当我从名为 AcitivityOne 的 Activity 中退出应用程序时,下次如何使用 ActivityOne 启动应用程序?
【问题讨论】:
-
您尝试过活动启动模式吗?
标签: android android-activity back-stack
我设计了一个包含多个活动的应用。在任何时候,后栈中都只有一个活动实例。当我从名为 AcitivityOne 的 Activity 中退出应用程序时,下次如何使用 ActivityOne 启动应用程序?
【问题讨论】:
标签: android android-activity back-stack
快速的方法是,在你的onCreate() 中将那些flags 放在setContentView() 之后:
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
finish();
return;
}
您也可以创建一个SharedPreferences,最后打开Activity,如下所示:
将您的onPause() 修改为:
@Override
protected void onPause() {
super.onPause();
SharedPreferences prefs = getSharedPreferences("MyPref", MODE_PRIVATE);
Editor editor = prefs.edit();
editor.putString("lastopened", getClass().getName());
editor.commit();
}
然后在您的onCreate() 中再次输入:
Class<?> LastOpened;
try {
SharedPreferences prefs = getSharedPreferences("myPrefs", MODE_PRIVATE);
LastOpened= Class.forName(prefs.getString("lastoppened", MainActivity.class.getName()));
} catch(ClassNotFoundException ex) {
LastOpened= MainActivity.class;
}
startActivity(new Intent(this, LastOpened));
如果没有帮助,请查看thread
【讨论】: