概述

当我们跟随时间的脚步向前挪动的时候,总能发现原来以前的自己做了一些愚蠢的事情。但,不见得以前就是不好的事情。我在以前的博客中写过两种关于Android中如何退出应用程序的方法。近日,我又发现了一个看似高大上的方法,因为作为程序员的你,使用起来会更加方便。它就像是你得心应手的工具,在需要的时候让你有一种,还好有它的感觉。下面我就使用Android事件总线来对Android退出程序作一个说明。


AndroidEventBus简介

AndroidEventBus是一个Android平台的事件总线框架,它简化了Activity、Fragment、Service等组件之间的交互,很大程度上降低了它们之间的耦合,使我们的代码更加简洁,耦合性更低,提升了我们的代码质量。但它能做的却不仅限于这些。


使用说明

需求的jar包:

android-support-v4.jar

simple_eventbus.jar

注:以上两个jar包在下面的工程源码下载连接中有包含,大家可以直接前往下载。(PS:当你真的开始使用他们时,你会发现他们是如此的好)


关键代码

BaseActivity.java

public class BaseActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        EventBus.getDefault().register(BaseActivity.this);    }        @Override    protected void onDestroy() {        super.onDestroy();        EventBus.getDefault().unregister(BaseActivity.this);    }        @Subcriber(tag = "exit_app")    private void finishApp(String msg) {        finish();    }}

StartActivity.java

public class StartActivity extends BaseActivity {    private int getLayoutResID() {        return R.layout.activity_main;    }        private Button mGoNextButton = null;        @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);                setContentView(getLayoutResID());                initEvent();    }        private void initEvent() {        initViews();                setViews();    }        private void initViews() {        mGoNextButton = (Button) findViewById(R.id.activity_main_go_sample_actviity_a_button);    }        private void setViews() {        mGoNextButton.setOnClickListener(new OnClickListener() {                        @Override            public void onClick(View arg0) {                startActivity(new Intent(StartActivity.this, SampleAActivity.class));            }        });    }}

ExitActivity.java

public class ExitActivity extends BaseActivity {    private int getLayoutResID() {        return R.layout.activity_exit;    }        private Button mGoNextButton = null;        @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);                setContentView(getLayoutResID());                initEvent();    }        private void initEvent() {        initViews();                setViews();    }        private void initViews() {        mGoNextButton = (Button) findViewById(R.id.activity_exit_finish_button);    }        private void setViews() {        mGoNextButton.setOnClickListener(new OnClickListener() {                        @Override            public void onClick(View arg0) {                exitApp();            }        });    }        public void exitApp(){        EventBus.getDefault().post("", "exit_app");    }}


工程源码

http://download.csdn.net/detail/u013761665/8624649


参考连接

Android事件总线还能怎么玩?

相关博文

Android退出程序(一)——单例模式


Android退出程序(二)——利用广播机制

更多相关文章

  1. Android SDK 源代码编译
  2. android布局实例代码
  3. Android处理各种触摸事件
  4. Android中回调下载事件处理实现步骤
  5. 第一行代码Android第三课
  6. Android 开源源代码收集(不断更新中...)

随机推荐

  1. Android(安卓)SDK Manager国内下载缓慢的
  2. Android打包剔除指定权限
  3. 【Android】BoradcastReceiver ContentPr
  4. getReadableDatabase() 和 getWritableDa
  5. 安卓微信第三方登陆
  6. Android:网络图片Url 转 Bitmap
  7. Android自定义Dialog去除黑色边框
  8. Android动态布局
  9. android 如何通过包名杀死指定的进程
  10. Android(安卓)NDK开发之旅29--C++--list