概述
当我们跟随时间的脚步向前挪动的时候,总能发现原来以前的自己做了一些愚蠢的事情。但,不见得以前就是不好的事情。我在以前的博客中写过两种关于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 {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);EventBus.getDefault().register(BaseActivity.this);}@Overrideprotected void onDestroy() {super.onDestroy();EventBus.getDefault().unregister(BaseActivity.this);}@Subcriber(tag = "exit_app")private void finishApp(String msg) {finish();}}StartActivity.javapublic class StartActivity extends BaseActivity {private int getLayoutResID() {return R.layout.activity_main;}private Button mGoNextButton = null;@Overrideprotected 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() {@Overridepublic 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;@Overrideprotected 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() {@Overridepublic void onClick(View arg0) {exitApp();}});}public void exitApp(){EventBus.getDefault().post("", "exit_app");}}
工程源码
参考连接相关博文
Android退出程序(一)——单例模式
Android退出程序(二)——利用广播机制
失败是成功之母