如何真真正正的退出Android应用
如何真真正正的退出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()中。
- public class BaseActivity extends Activity {
- protected BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- finish();
- }
- };
- @Override
- protected void onResume() {
- super.onResume();
- // 在当前的activity中注册广播
- IntentFilter filter = new IntentFilter();
- filter.addAction("ExitApp");
- this.registerReceiver(this.broadcastReceiver, filter);
- }
- @Override
- protected void onDestroy() {
- // TODO Auto-generated method stub
- super.onDestroy();
- this.unregisterReceiver(this.broadcastReceiver);
- }
- }
接下来大家可能已经猜到了,把你需要显示的类,也就是跳转时没关闭过的,都extends BaseActivity,
当退出时只需发送一个广播即可:
- Intent intent = new Intent();
- intent.setAction("ExitApp");
- this.sendBroadcast(intent);
- super.finish();
然后就没了,是不是很简单,鲜花在哪里。
总结一下吧:
1:先创建一个BaseActiviey。
2:把需要关闭的Activity全部extends BaseActivity
3:关闭时放一个广播就可
评论暂时关闭