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

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

前篇介绍了EventBus的基本使用

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

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

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

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

这里写图片描述原谅我没有找到 举杯子的优雅表情。

首先 在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

这里写图片描述

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

这恰好突出了EventBus的优点啊!短、小、快!!
这里写图片描述

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

posted on 2016-02-03 14:13  木鱼哥  阅读(138)  评论(0编辑  收藏  举报

导航