Android 如何启动启动应用程序时上次打开的活动?

Android 如何启动启动应用程序时上次打开的活动?,android,android-activity,back-stack,Android,Android Activity,Back Stack,我设计了一个包含多个活动的应用程序。在任何时候,后堆栈中都只有一个活动实例。当我从名为AcitivityOne的活动中退出应用程序时,下次如何使用ActivityOne启动应用程序?快速方法是在onCreate()中将这些标志放在setContentView()之后: 此外,您还可以使用上次遇到的活动创建共享参考,如下所示: 将您的onPause()修改为: @Override protected void onPause() { super.onPause(); SharedPrefe

我设计了一个包含多个活动的应用程序。在任何时候,后堆栈中都只有一个活动实例。当我从名为AcitivityOne的活动中退出应用程序时,下次如何使用ActivityOne启动应用程序?

快速方法是在
onCreate()
中将这些
标志放在
setContentView()之后:

此外,您还可以使用上次遇到的
活动创建
共享参考
,如下所示:

将您的
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));
Class最后打开;
试一试{
SharedPreferences prefs=getSharedPreferences(“myPrefs”,MODE\u PRIVATE);
LastOpened=Class.forName(prefs.getString(“lastoppened”,MainActivity.Class.getName());
}捕获(ClassNotFoundException ex){
LastOpen=MainActivity.class;
}
startActivity(新意图(此,上次打开));

如果没有帮助,请看一下这个

您尝试过活动启动模式吗?太棒了!!非常感谢你!
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));