Android ActivityGroup 关闭子Activity问题

本文探讨了ActivityGroup中子Activity无法正确销毁的问题,并提供了四种解决方案,包括直接调用finish方法、发送广播、使用destroyActivity方法及通过杀死后台进程的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天碰到一个问题,发现自己的应用程序关闭了,但是手机上显示还在运行,调试发现和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());
结果【程序结束后,手机后台运行进程没有了我的应用程序】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值