Activity退出机制探究[1]

 

 如果某个应用只包含单一的Activity,“何时退出,如何退出”往往不是问题。但当一个Application中包含多个Activity的时候,以上问题便会浮现。
 

方法一:通常我们最常用的方法是调用finish()方法来结束当前的Activity,但该方法实际上只是将当前Activity置于onStop状态,并没有彻底关闭该进程。

 

方法二:调用System.exit(0),这种野蛮的方法存在三个问题:

1、  可能会丢失正在处理中的其他线程数据

2、  退出后再进入,你会发现进入的首界面是你先前没有关闭的Activity

3、  可能会造成系统响应缓慢

 

方法三: 调用
android.os.Process.killProcess(android.os.Process.myPid());

通过获取该进程ID来将其kill掉。可惜的是,实际上每个Activity都开启了一个Process,因此只能kill掉当前的这个Activity,而无法退出整个应用。

 

方法四:调用ActivityManager.forceStopPackage();

需要说明的是:这种表述本身是错误的,应用层中的ActivityManager中并没有forceStopPackage方法,要使用该方法需要在frameworks层中使用ActivityManagerNative来调用。由于对frameworks层涉及较少,笔者没有对该方法进行验证,请有条件的朋友验证一下,共同交流。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值