我有1个应用程序自定义类 MyApplication.java 和1个活动 MainActivity.java 。
第一次启动应用程序时,MyApplication.java类正常运行。然后我通过完成活动
退出应用程序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();
}
答案 0 :(得分:0)
它是因为这条线 MainActivity.this.finish();
只会关闭活动,但应用程序仍在运行,因为您没有完全关闭应用程序的权限,并且在您单击运行MainActivity.this.finish();
的按钮后尝试查看您的设备上的后台应用程序,您将看到您的应用程序最后,应用程序类在应用程序启动后运行并相处,直到应用程序从设备应用程序堆栈手动关闭。
答案 1 :(得分:0)
在Application类中,只有在退出应用程序时结束进程,才会调用onCreate()
方法。通常,当系统需要内存或使用后退按钮而不是主页按钮退出应用程序时,进程将停止。但是,你不能依赖它被终止。
如果您确实想在退出应用程序时终止您的进程,则可以在用户按下第一个活动的后退键时调用System.exit(0);
。
@Override
public void onBackPressed() {
MainActivity.this.finish();
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
getParent().finish();
}
注意:绝对不推荐这样做,因为它意味着与Android操作系统的工作方式作斗争并可能导致问题。