MyApplication.java没有运行app第二次启动?

MyApplication.java did not run at the second time app started?

我有 1 个应用自定义 class MyApplication.java 和 1 个 activity MainActivity.java.

第一次启动应用程序时,class MyApplication.java 运行 正确。然后我通过完成 activity

退出应用程序
MainActivity.this.finish();

然后我点击屏幕上的应用程序图标再次启动它。但是这次,MyApplication.java不要运行。这意味着我无法通过完成所有活动来退出应用程序?

我无法解释为什么。

P/s: 这是我的代码

MyApplication.java

@Override
    public void onCreate() {
        super.onCreate();
        Log.d(TAG, "onCreate: ");
    }

MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Log.d(TAG, "onCreate: ");
}

@Override
public void onBackPressed() {
    this.finish();
}

因为这一行 MainActivity.this.finish();

只会关闭 activity 但应用程序仍然 运行 因为您没有完全关闭应用程序的权限,并且在您单击运行的按钮后证明了这一点MainActivity.this.finish(); 尝试在您的设备上查看后台应用程序,您将看到您的应用程序最后,应用程序 class 在应用程序启动后运行,直到应用程序从设备应用程序堆栈手动关闭。

在应用程序 class 中,仅当您退出应用程序时进程结束时才会调用 onCreate() 方法。通常当系统需要内存或者如果您使用后退按钮而不是主页按钮退出应用程序时,该过程会停止。但是,您不能指望它会被终止。

如果您真的想在退出应用程序时终止您的进程,您可以在用户按下第一个 activity 上的返回键时调用 System.exit(0);

@Override
public void onBackPressed() {
    MainActivity.this.finish();          
    android.os.Process.killProcess(android.os.Process.myPid());
    System.exit(0);
    getParent().finish();
}

注意:绝对不推荐这样做,因为这意味着与 Android OS 的工作方式作斗争并可能导致问题。