運用EventBus

1.可以使用BroadcastReceiver

說說思路,通過新建廣播接收器,動態(tài)注冊廣播接收器,由登錄按鈕點擊發(fā)送廣播,在廣播接收器接收,接收后在onReceive中做出邏輯判斷,然后將得到的值存在全局變量中,在需要判斷頁面變化的頁面加入判斷。

public?classMyBroadcastReceiverextendsBroadcastReceiver {

Contextcontext;

MyBroadcastReceivermb;

publicMyBroadcastReceiver(Context

context) {

this.context= context;

mb=this;

};

publicvoidregisterAction(String

action) {

IntentFilterfilter =newIntentFilter();

filter.addAction(action);

context.registerReceiver(mb, filter);

}

@Override

publicvoidonReceive(Context

context, Intent intent) {

if(intent.getBooleanExtra("userpass",false)){

MainTab03.isLogin=true;

}else{

MainTab03.isLogin=false;}

}

}

2.EventBus思路跟廣播一樣的

啥叫EventBus?

來自百度大人的::EventBus是一個Android端優(yōu)化的publish/subscribe消息總線,簡化了應(yīng)用程序內(nèi)各組件間、組件與后臺線程間的通信。比如請求網(wǎng)絡(luò),等網(wǎng)絡(luò)返回時通過Handler或Broadcast通知UI,兩個Fragment之間需要通過Listener通信,這些需求都可以通過EventBus實現(xiàn)。

作為一個消息總線,有三個重要的主要元素:

--Event事件

--Subscriber事件訂閱者

--Publisher事件發(fā)布者,用于通知Subscriber有事件發(fā)生

基本使用步驟::

1.定義事件類型寫個事件類Event類

2.定義事件處理方法

Public void onEventMainThread

3.注冊訂閱者

一般寫在Fragment跟Activity的OnCreat()中

EventBus.getDefault().register(this);

4.取消訂閱者

一般寫在Fragment跟Activity中的onDestroy()中

EventBus.getDefault().unregister(this);

5.發(fā)送消息

EventBus.getDefault().post(Event類對象);

簡單介紹到這吧,----具體可以查看博客:::http://www.cnblogs.com/angeldevil/p/3715934.html

也是用全局變量存boolean值,在事件接受中的onEventMainThread中寫IsLogin.isLogin= (Boolean)eb.getmData();

在每個頁面或者點擊邏輯判斷if(IsLogin.isLogin)做出邏輯

3.sharedpreferences這個也應(yīng)該可以,

我使用的是鴻洋大神的sharedpreferences封裝。附上鏈接地址http://blog.csdn.net/lmj623565791/article/details/38965311

不寫了,一會經(jīng)理該叨叨我了。

對了,如果運用ViewPager+Fragment寫的框架,取消viewPager的緩存機制,可以適當?shù)目聪翭ragment的懶加載,別問我,自個搜去。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容