您的位置:首页 > 移动开发

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

2016-02-03 14:13 507 查看
最近在研究eventBus。。很多小伙伴不知道他有什么用。。

前篇介绍了EventBus的基本使用

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

转载请注明出处:/article/3646088.html

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

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


原谅我没有找到 举杯子的优雅表情。

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

BaseActivity

[code]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

[code]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

[code]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的优点啊!短、小、快!!



如果你喜欢我的博客,请关注我~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: