Android退出程式(三)——Android事件匯流排

來源:互聯網
上載者:User

標籤: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事件匯流排

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.