罗浩的技术专栏 Android and Python and C++ Coder

用EventBus实现完全推出App实战

2019-07-21


背景

通过简单的使用EventBus来实现完全退出一个App,通过EventBus的事件通知机制,在需要退出的时候发送消息,就不用通过Activity自定义栈来管理和实现。(别人已实现,自己写一遍,纪录一下加深印象)

具体实现

  • AppEventApp 首先定义一个AppEventApp类,用EventBus事件传输
  • BaseActivity 其次定义一个BaseActivity类,继承于Activity在其onCreate()方法中调用:
    EventBus.getDefault().register(this);
    

    onDestroy()方法中调用:

    EventBus.getDefault().unregister(this);
    

    同时实现事件接收的方法:

    @Subscribe(threadMode = ThreadMode.MAIN)
    public void onMessageEvent(AppExitEvent event) {
      finish();
      System.exit(0);
    }
    

    这个方法主要是接收消息后去退出Acitivity

  • 最后让每个Activity去继承于BaseActivity,在需要退出的地方调用以下代码:
    EventBus.getDefault().post(new AppExitEvent());
    

感悟

在接收到退出消息之前其实还是可以做很多事情,比如发个广播等。


Comments

Content