每次 运行 时重新启动应用程序?

Restart app each time it's ran?

我有 2 个活动,一个 4 位密码样式登录 Activity(主要Activity)和一个内容 Activity。

此应用程序存储私人信息,因此在恢复 activity 时不应看到这些信息,因此我希望该应用程序在每次启动时在登录 activity 时完全重新启动,而不是从中断的地方继续。

我试过在内容 activity 的 onStop() 和 onResume 方法中搞乱,但这些方法似乎非常不可靠,因为有时当我有 onRestart 设置来重新启动登录时 activity, 它根本不会启动它,并且在 onStop() 中调用要激活的登录屏幕将阻止我能够在后台完成任务,例如保存数据。

有什么我可以添加到清单文件中的东西,它会告诉应用程序无论如何从登录 activity 重新启动?在像这样的应用程序上工作时可能发生的最糟糕的事情之一是信息可以被所有者以外的其他人访问,而不是被迫登录..

您需要专注于内容中的两个调用 Activity:

  • onPause(): 这是您杀死 Content activity 并将其从堆栈中删除的地方。您可以轻松做到这一点:

    @Override
    public void onPause() {
        super.onPause();
        //Save your data here
    
        finish(); //Kill Contect Activity.
    }
    
  • onRestart(): 这是将用户重定向到 Main Activity.

    的地方
    @Override
    public void onRestart() {
        super.onRestart();
        Intent i = new Intent(this, MainActivity.class);
        startActivity(i);
        finish(); //Kill Contect Activity.
    }
    

This graph 可能会帮助您理解 Activity 生命周期:

您需要在清单中为您的活动设置标志 android:clearTaskOnLaunchandroid:excludeFromRecents