【Android】退出多个Activity的方法(五)

本文介绍了一种利用Android广播机制退出多个Activity的方法。通过创建基类Activity并实现在该类中注册广播监听器,当接收到特定广播时,所有继承自基类的Activity将被关闭。

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

    前四个退出多个Activity的方法链接如下:


    这次介绍的方法是使用到了Android四大组件中广播来实现退出多个Activity的。
    首先创建一个基类Activity,在基类Activity中实现对广播的监听和对监听后逻辑的实现,代码如下:

class BaseActivity extends AppCompatActivity{
    private static final String TAG = "BaseActivity";
    protected BroadcastReceiver finishReceiver;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d(TAG, getClass().getSimpleName());
    }

    @Override
    protected void onResume() {
        super.onResume();
        /*注1*/
        IntentFilter filter = new IntentFilter();
        filter.addAction("com.example.finishActivity");
        finishReceiver = new myBroadcastReceiver();
        registerReceiver(finishReceiver, filter);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        /*注2*/
        if (finishReceiver != null) {
            unregisterReceiver(finishReceiver);
            finishReceiver = null;
        }
    }
    /*注3*/
    class myBroadcastReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals("com.example.broadcast.finishActivity")) {
                finish();
            }
        }
    }

}
  • 注1:注册监听广播
  • 注2:因为是动态注册,所以要取消广播注册
  • 注3:监听到广播后的业务逻辑,finish()掉Activity

    接着在需要退出多个Activity的地方添加以下代码:

/*发送广播*/
sendBroadcast(new Intent("com.example.finishActivity"));

方法步骤总结:
  1. 创建一个基类Activity。在onResume()中实现广播的注册和监听;在onDestroy()中实现取消广播;定义一个内部类myBroadcastReceiver继承于BroadcastReceiver,在其onReceiver()方法中实现监听到广播后的业务逻辑处理。
  2. 在需要退出多个Activity的地方发送广播关闭所有Activity。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值