应用程序销毁后在应用程序中打开相同的活动

时间:2015-05-09 09:02:52

标签: android android-activity

我想在应用程序退出或销毁之前打开用户正在使用的相同活动。 我怎样才能做到这一点? 请帮帮....

1 个答案:

答案 0 :(得分:1)

当通过主屏幕上的图标启动时,Android将始终使用AndroidManifest.xml中的android.intent.action.MAIN过滤器启动活动,除非应用程序已在运行(在这种情况下,它显然会恢复活动)在堆栈顶部。)

要实现您所描述的内容,您只需将最后一个可见活动存储在SharedPreferences中,并根据首选项启用Dispatcher活动以启动上一个活动。

因此,在您想要自动重新启动的每项活动中:

@Override
protected void onPause() {
    super.onPause();

    SharedPreferences prefs = getSharedPreferences("X", MODE_PRIVATE);
    Editor editor = prefs.edit();
    editor.putString("lastActivity", getClass().getName());
    editor.commit();
}

以及类似于以下内容的Dispatcher活动:

public class Dispatcher extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Class<?> activityClass;

        try {
            SharedPreferences prefs = getSharedPreferences("X", MODE_PRIVATE);
            activityClass = Class.forName(
                prefs.getString("lastActivity", Activity1.class.getName()));
        } catch(ClassNotFoundException ex) {
            activityClass = Activity1.class;
        }

        startActivity(new Intent(this, activityClass));
    }
}

说明:

  • 您可以为onPause覆盖
  • 创建基类
  • Dispatcher活动显然需要是android.intent.action.MAIN操作