【问题标题】:How to start the activity that is last opened when launch an application?启动应用程序时如何启动上次打开的活动?
【发布时间】:2016-03-17 16:31:09
【问题描述】:

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

【问题讨论】:

  • 您尝试过活动启动模式吗?

标签: android android-activity back-stack


【解决方案1】:

快速的方法是,在你的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

【讨论】:

  • 太棒了!!非常感谢!
猜你喜欢
  • 1970-01-01
  • 2021-02-05
  • 1970-01-01
  • 1970-01-01
  • 2011-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多