码迷,mamicode.com
首页 > 其他好文 > 详细

通过本地广播关闭之前的Activity

时间:2018-01-11 22:24:25      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:方法   gis   lte   super   override   err   protected   div   public   

打开第二个Activity时想要关闭第一个Activity直接finish就行,但是如果打开第三个Activity时想要关闭第一个Activity就不是那么方便

其中一种方法就是通过广播来关闭,这里讲的是通过本地广播来关闭

在要关闭的Activity中写一个内部类finishAppReceiver,或者写一个BaseActivity,让项目的所有Activity都继承自这个

public class MainActivity extends AppCompatActivity {

    LocalBroadcastManager localBroadcastManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        localBroadcastManager = LocalBroadcastManager.getInstance(this);
    }

    protected BroadcastReceiver finishAppReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            finish();
        }
    };

    @Override
    public void onResume() {
        super.onResume();
        IntentFilter filter = new IntentFilter();
        filter.addAction("FINISH");
        localBroadcastManager.registerReceiver(this.finishAppReceiver, filter);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        localBroadcastManager.unregisterReceiver(this.finishAppReceiver);
    }
}

 

在需要关闭的时候发送广播

LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(this);
Intent finish = new Intent("FINISH");
localBroadcastManager.sendBroadcast(finish);

 

通过本地广播关闭之前的Activity

标签:方法   gis   lte   super   override   err   protected   div   public   

原文地址:https://www.cnblogs.com/ennis/p/8270251.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!