Activity类里 实现onDestroy并且加入System.exit(0);  然后在关闭的地方直接调用finish就行public void onDestroy()
    {
super.onDestroy();
System.exit(0);
    }

解决方案 »

  1.   

    this.finish();
    IWindowManager wm = IWindowManager.Stub.asInterface(ServiceManager.getService("window"));long now = SystemClock.uptimeMillis();
    KeyEvent down = new KeyEvent(now, now, KeyEvent.ACTION_DOWN, <keycode:home>, 0);
    KeyEvent up = new KeyEvent(now, now, KeyEvent.ACTION_UP, <keycode:home>,  0);
    try{
    wm.injectKeyEvent(down, false);
    wm.injectKeyEvent(up, false);
    }...
      

  2.   

    Android程序完全退出的三种方法楼主是不是调用System.exit(0); 的时机不对?必须在activity结束,service都结束后才能调用。我就遇到过这个问题,如果在没有退出service之前就执行System.exit(0),则service里面就会报exception。
      

  3.   

    首先把相关的服务停掉,再调用android.os.Process.killProcess(android.os.Process.myPid())  
      

  4.   

    这个问题也困扰了我一,两个小时,在stackoverflow.com的论坛里面才找到了方法,而且是没有代码,只有思路的。首先lz你扩展Activity,在onCreate里面把activity对象装到一个list里面,然后你的所有activity都扩展自你自定义的这个BaseActivity。这样你所有的activity实例都会被放到list里面,当你点击退出按钮时,
    循环list,finish里面所有的activity实例,然后调用System.exit(0);ok,你退出整个应用程序了~~~
      

  5.   

    system.exit(0), killprocess都免不了只有关闭当前activity的问题。最管用的是这个方法了。
    ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
    am.restartPackage(getPackageName());   不过哥们, 我还是提醒你, 这样的方法不安全。
    最好最干净的方法是使你的程序懂得自动关闭。 方法很多,比如使用activitiresult- 目录activity     打开播放activity的时候
                startActivityForResult(Intent, request_code);     定义个onActivityResult(request_code, result_code, data)函数
          {
              if (request_code == 你设置的请求码) {
                        if(result_code == 你设置的返回码-播放Activity finish()是设置的)
                                        finish();
              }
          }-播放activity
           正常关闭时直接finish()就可以了, 别忘了关掉播放器。
            你要是关闭整个程序 finish()之前 setResult(返回码);
    当然还有一个方法是 你打开播放activity时 关掉当前的目录activity. 就是任意时刻只有一个activity运行,就免了上面的方法了, 但你要返回目录时,要重新读取目录数据,这多费劲啊 肯定会影响速度。你看着办吧, 觉得哪个好,就用哪个。那我等着您的回报了。 我看好你哟!!!