Android动态关闭某Activity

博主由于最近为了弄软著权,已经很久没更新了,恰巧最近学弟问了我这个问题,就写篇博客

在Android中,栈是Activity存放的位置,所以此文章得在了解四种启动模式和栈的特点下阅读。废话不多说

需求:在一个Activity中关闭某个Activity。

解决方式:网上有许多的方法,而博主喜欢用结合广播的这种。

将当前Activity命名为MainActivity;
要被关闭的Activity命名为ElseActicity;

 public static final String ACTIVITY_MARK =“BoreSeven”;

工具类:

   public static class BroadcastUtils {
        /**
         * 发送finish页面的广播
         */
        public static void sendFinishActivityBroadcast(Context context) {
            Intent intent = new Intent(ACTIVITY_MARK);
            context.sendBroadcast(intent);

        }
    }

1.在ElseActivity中

   private FinishActivityRecevier mRecevier;

    protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
        setContentView(R.layout.else_activtiy);
      
        //广播
        mRecevier = new FinishActivityRecevier();
        registerFinishReciver();

    }
    //动态注册广播
    private void registerFinishReciver() {
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction(ACTIVITY_MARK);

        registerReceiver(mRecevier, intentFilter);
    }

    private class FinishActivityRecevier extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            //根据需求添加自己需要关闭页面的action
            if (ACTIVITY_MARK.equals(intent.getAction())) {
                HideSortActivtiy.this.finish();
            }
        }
    }
     //在Activity销毁时移除广播
    @Override
    protected void onDestroy() {
        if (mRecevier != null) {
            unregisterReceiver(mRecevier);
        }
        super.onDestroy();
    }

2.在MainActivity中调用工具类中方法:

 BroadcastUtils.sendFinishActivityBroadcast(this);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值