Android 完全退出应用程序总结

时间:2021-01-24 20:32:08


        程序由多个Activity组成,假设有A跳至B,由B跳至C,在C点击Back键要完全退出程序。需要重写back键响应事件。

        @Override    
     public boolean onKeyDown(int keyCode,KeyEvent event) {     
         // 是否触发按键为back键     
          if (keyCode == KeyEvent.KEYCODE_BACK) {   
              // 这里处理退出程序的逻辑
               return true;  
          }else{
              return super.onKeyDown(keyCode,event);
          }
          
      }

     在网上搜了大致三种方法:

     1、杀死进程。android.os.Process.killProcess(android.os.Process.myPid());

     2、System.exit(0);

     3、关闭程序包。

            ActivityManager activityMgr=(ActivityManager)this.getSystemService(ACTIVITY_SERVICE);
           activityMgr.restartPackage(getPackageName());

          这个需要添加权限:<uses-permission android:name="android.permission.RESTART_PACKAGES" />

    一一尝试了下都不好使。无奈之下,采用了点击back键直接跳转到桌面的方法。

               Intent intent = new Intent(Intent.ACTION_MAIN);
               intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
               intent.addCategory(Intent.CATEGORY_HOME);
               startActivity(intent);

  相当于把桌面当作一个Activity来跳转。这样就解决了问题。