Android ActivityGroup 关闭子Activity问题

今天碰到一个问题,发现自己的应用程序关闭了,但是手机上显示还在运行,调试发现和ActivityGroup有关系,
继承自ActivityGroup类的主类,调用finish方法时,自己可以onDestroy,但其包含的子Activity没有finish。
采用了方法1:

1、获取当前Activity,然后显示调用 finish方法

Activity pActivity = getLocalActivityManager().getCurrentActivity();
pActivity.finish();

结果【看调试信息:子Activity的onDestroy方法没有调用】


2、向子Activity 发送广播,让其接受到广播后,自己调用finish方法。

sendBroadcast(new Intent(ACTION_INTENT_KILLSELF_MSG));

 private BroadcastReceiver mReceiveBroadcast = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {

            String action = intent.getAction();
            if (action.equals(ACTION_INTENT_KILLSELF_MSG)) {
		finish();
	  }
	}
	};

结果【收到广播,但子Activity的onDestroy方法任然没有调用】


3、调用ActivityGroup中的destroyActivity方法

getLocalActivityManager().destroyActivity("***Activity", true);
结果【看调试信息:子Activity的onDestroy方法没有调用】


4、最后郁闷,采用查询后台进程,杀死的方法,最终解决了。

   final ActivityManager am = (ActivityManager) getSystemService(Service.ACTIVITY_SERVICE);
   Log.d("FinishApplication :", getPackageName());
   am.killBackgroundProcesses(getPackageName());

结果【程序结束后,手机后台运行进程没有了我的应用程序】

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值