我有一个应用程序,我希望它能够从任何活动中完全完成,并且它不会保留在后台。该应用程序将包含 5 个 Activity。在第三个活动中,我有以下代码。
@Override
protected void onDestroy() {
Log.i(TAG,"Me destrulleron");
super.onDestroy();
android.os.Process.killProcess(android.os.Process.myPid());
}
@Override
public void onBackPressed() {
if(this.tiempoPrimerClick + INTERVALO > System.currentTimeMillis()){
finish();
return;
}else{
Toast.makeText(this,"Vuelve a precionar para salir", Toast.LENGTH_SHORT).show();
}
tiempoPrimerClick = System.currentTimeMillis();
}
这结束了第三个活动和第二个活动,但让我留在了 MainActivity。
在第二个活动中,我有以下代码
@Override
protected void onDestroy() {
Log.i(TAG,"Me destrulleron");
super.onDestroy();
android.os.Process.killProcess(android.os.Process.myPid());
} @Override
public void onBackPressed() {
if(this.tiempoPrimerClick + INTERVALO > System.currentTimeMillis()){
finish();
return;
}else{
Toast.makeText(this,"Vuelve a presionar para salir", Toast.LENGTH_SHORT).show();
}
tiempoPrimerClick = System.currentTimeMillis();
}
如果应用程序关闭并且进程终止,则处于此活动中。
现在在 MainActivity 我有以下代码:
@Override
protected void onDestroy() {
super.onDestroy();
android.os.Process.killProcess(android.os.Process.myPid());
}
我仍在检查为什么在第三个活动中应用程序没有完全关闭。如果你帮我一把,那将是一个很大的帮助。
从
>= API 16
您可以使用的版本开始,finishAffinity()
但有一种替代方法可以使用>= API 11
替代方法
方法是在所有其他人的顶部加载一个
Actividad
,删除它的堆栈,然后永久关闭它。每次你想把所有
Actividades
打开的都留下,到onBackPressed
所有这些都放的时候并且在
MainActivity.java
捕获中如果有一个intent
带有值的,EXIT
以便完整地完成应用程序。改编自SO和SO答案
测试
finishAffinity();
需要注意的是,它对应于 Jelly Bean API,如果它给你一个错误,放置
在您使用上述功能的功能之上。