如何真真正正的退出Android应用


如何真真正正的退出Android应用,最简单有效的方法,不看你会后悔。

大家开发项目时可能又会遇到,要求退出时完全退出该应用,不得有任何残留的Activity,如何办呢?

我搜了一圈网上大多都是什么使用Intent跳转到手机桌面,千篇一律啊,各种一样啊,各种不能用啊

或者又有什么:

ActivityManager activityMgr = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);

activityMgr.restartPackage(mContext.getPackageName());

或者出现什么:

int pid = android.os.Process.myPid();

android.os.Process.killProcess(pid);   //杀死当前进程

大家发现了什么没有,是滴都不行滴,是的没错。以前看到一个视频上讲的用什么建一个list,没一个oncreat()时添加到list里面去,好麻烦啊,受不鸟啊,

下面给大家介绍一种无比简单的方法,不喜欢的大家再想办法,我个人觉得简单,方便才是王道。

首先创建一个BaseActivity,import大家自己加上,在里面很简单,声明了一个广播接收器,在接受里面进行finish(),

其次就是接受器的注册与销毁分别在onResume()和onDestory()中。

  1. public class BaseActivity extends Activity {    
  2.     protected BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {    
  3.         @Override    
  4.         public void onReceive(Context context, Intent intent) {    
  5.             finish();    
  6.         }    
  7.     };    
  8.         
  9.     @Override  
  10.     protected void onResume() {    
  11.         super.onResume();    
  12.         // 在当前的activity中注册广播     
  13.         IntentFilter filter = new IntentFilter();    
  14.         filter.addAction("ExitApp");    
  15.         this.registerReceiver(this.broadcastReceiver, filter);    
  16.     }    
  17.         
  18.     @Override    
  19.     protected void onDestroy() {    
  20.         // TODO Auto-generated method stub     
  21.         super.onDestroy();    
  22.         this.unregisterReceiver(this.broadcastReceiver);      
  23.     }    
  24.   
  25. }  

接下来大家可能已经猜到了,把你需要显示的类,也就是跳转时没关闭过的,都extends BaseActivity,

当退出时只需发送一个广播即可:

  1.         Intent intent = new Intent();    
  2.         intent.setAction("ExitApp");    
  3.         this.sendBroadcast(intent);    
  4.         super.finish();    

然后就没了,是不是很简单,鲜花在哪里。
总结一下吧:
1:先创建一个BaseActiviey。
2:把需要关闭的Activity全部extends BaseActivity
3:关闭时放一个广播就可

相关内容