zoukankan      html  css  js  c++  java
  • 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的优点啊!短、小、快!!
    这里写图片描述

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

  • 相关阅读:
    参数探测(Parameter Sniffing)与影响计划重用的SET选项
    The workbook can not be opened
    参数Sniffing问题
    Unable to connect SQL Server
    正则|和[]的区别
    form的target捕捉不到动态写入name的iframe
    windows下git bash乱码问题
    ie6,7下textarea等上方空白
    根据字数截取字符串,不能截断url
    浏览器hack
  • 原文地址:https://www.cnblogs.com/muyuge/p/6333535.html
Copyright © 2011-2022 走看看