界面切換更新之singleTask模式下的更新

初次寫點關於自己在項目中所用到的一點小東西,標題我也是是不想去多想,對於工科生沒必要將文字寫的那麼的牛x,關鍵是在於簡單粗暴,希望這點東西能幫助還在爲界面刷新而傷腦筋的程序猿or碼農們。

1、廣播公交車
廢話就不多扯了,直接奔入正題,我們在界面切換完,做了一系列的操作後,返回上一個界面的時候需要重新刷新界面,這個是碰到的比較多的把,有的直接在onResume()方法裏面寫,以前我也是這麼做的也可以實現,還有就是通過廣播刷新,在要刷新的界面註冊廣播簡單的代碼如下:
broadcastManager=ocalBroadcastManager.getInstance(context);
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(“update”);
mItemViewListClickReceiver = new MyReceiver();
broadcastManager.registerReceiver(mItemViewListClickReceiver, intentFilter);
碼農都知道廣播分動態和靜態,當然我喜歡動的東西,如果你是悶騷型的可以去試試靜態註冊廣播(記住MyReceiver是自己定義繼承BroadCastReceiver的一個類哦)在改變某個界面的值的同時發送廣播這個時候界面就會悄悄的刷新哦!是不是很low,我也這麼覺得,但是可以解決問題。
2、intent害羞姑娘
以上廣播,onResume基本可以解決單次界面刷新,如果界面存在多次反覆操作,我們又不想讓界面多次創建,敏感的你自然嚮導了activity的啓動模式singleTask,此時歡暢的你將其用上,不一會兒,你可要灰心喪氣了,我擦怎麼界面還是第一次加載上來的東東,這就是intent害羞的姑娘,佔據了閨房。
爲什麼說intent是害羞的姑娘呢 ,因爲他是躲在閨房裏面,在傳的過程中他就一直在閨房裏面待着,所以在界面切換更新,貌似intent不行,因爲本次拿到的是一直在閨房裏面的那個姑娘,而你結交了新歡,想換那麼問題來了,閨房的姑娘願不願意呢 ?呵呵,這就是你來決定了,你可以無情的將他趕出去,作爲挨踢行業的人員,代碼空間中是允許你YY 的,所已我們就要使用set()方法了,那麼問題又來了,在哪裏set呢?解決此問題的重點就在onNewIntent()這個方法裏面,在要刷新的界面重寫這個方法就闊以了,然後在裏面使用setIntent(intent);便可以更換閨房中的姑娘了,似不似很HAPPY呢?具體代碼如下:
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
}
這只是設值哦,在代碼中還是要是用getIntent()拿到intent來獲取相應的值,其他操作照常進行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章