標籤:android 退出程式 android事件匯流排 單例模式 廣播
概述
當我們跟隨時間的腳步向前挪動的時候,總能發現原來以前的自己做了一些愚蠢的事情。但,不見得以前就是不好的事情。我在以前的部落格中寫過兩種關於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退出程式(二)——利用廣播機制
Android退出程式(三)——Android事件匯流排