Android APP新的“优雅”退出方式--EventBus大显身手

时间:2022-05-23 00:45:34

最近在研究eventBus。。很多小伙伴不知道他有什么用。。

前篇介绍了EventBus的基本使用

这里简单举一个例子,就是退出APP

转载请注明出处:http://blog.csdn.net/wingichoy/article/details/50629216

相信大家都用过自定义的ActivityManager去管理Activity,退出应用的时候就遍历finish。

今天就给大家分享一种“优雅”的方式,用EventBus来退出APP。

Android APP新的“优雅”退出方式--EventBus大显身手原谅我没有找到 举杯子的优雅表情。

首先 在BaseActivity里面注册,然后写一个onEventMainThread()方法。在里面调用finsh()

BaseActivity

public class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EventBus.getDefault().register(this);
} public void onEventMainThread(Integer i){
finish();
}
@Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
}

然后多加几个Activity作为测试Activity,在最后一个Activity添加退出按钮

MainActivity

public class MainActivity extends BaseActivity {
private Button mButton; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButton = (Button) findViewById(R.id.btn);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,Main2Activity.class);
startActivity(intent); }
});
} @Override
protected void onDestroy() {
super.onDestroy(); Log.e("wing","main finished");
}
}

Main2Activity

public class Main2Activity extends BaseActivity {

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2);
findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EventBus.getDefault().post(1);
}
}); } @Override
protected void onDestroy() {
super.onDestroy();
Log.e("wing","main2 finished");
}
}

最后一个Activity按钮的点击时间里,发送一条消息。由所有Activity进行接收,以达到APP退出的效果。观察Log

Android APP新的“优雅”退出方式--EventBus大显身手

嗯,确实都退出了。。有木有觉得很 优雅,有没有觉得EventBus很好用呢。

这恰好突出了EventBus的优点啊!短、小、快!!

Android APP新的“优雅”退出方式--EventBus大显身手

如果你喜欢我的博客,请关注我~~~