2014-09-26 175 views
0

后,我推回到键退出我的Android应用程序,这个应用程序的过程中仍然存在:如何在Android应用程序退出后终止进程?

$ adb shell ps |grep -is accelerometerplay 
u0_a122 2679 139 504048 23968 ffffffff 400d13c4 S com.example.android.accelerometerplay 

我的onDestroy()中添加一些代码:

@Override 
public void onDestroy() { 
    super.onDestroy(); 

    android.os.Process.killProcess(android.os.Process.myPid()); 
} 

难道这还不够? 或者我必须做一些额外的事情?

+0

我认为KillProcess只会杀死特定的进程ID。如果进程处于堆栈状态,则不会被破坏! – 2014-09-26 11:22:17

+0

使用'onStop()'。如果你完成()你的活动,''onDestroy()'只保证被调用。它甚至不能保证你的应用程序是否进入了背景并被杀死。阅读有关活动生命周期的信息。你可以通过在'super.onDestroy()'上放置一个断点来看到它,它不会到达断点。 – Simon 2014-09-26 11:22:43

回答

2

试试这个:

@Override 
     public boolean onKeyDown(int keyCode, KeyEvent event) { 

      if (keyCode == KeyEvent.KEYCODE_BACK) { 

       android.os.Process.killProcess(android.os.Process.myPid()); 

       return false; 
      } 

      return super.onKeyDown(keyCode, event); 
     } 
+0

这是可以的,但是如果由于返回键以外的原因而导致活动死亡,该怎么办? – Simon 2014-09-26 12:01:51

+0

但这段代码onDestroy在活动 – Talha 2014-09-26 12:09:30

+0

导致你的应用程序仍然在后台运行,并没有调用onDestroy()....随着此代码尝试重写onKeyDown由Vishal给出的答案..应该正常工作 – ashutiwari4 2014-09-26 12:13:35

0

你为什么要这么做?当他没有足够的资源时,Android会自行处理它。