下面給幾個邪門歪道的玩法,都是在實際項目中爲了某些詭異需求而產生的。java
一、強行關閉數組
做用:不管在什麼時候何地都能關掉某個Activityide
代碼:工具
public class TestActivity extends Activity{ private static TestActivity me = null; public static void close(){ if (me!=null) { me.finish(); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); me = this; } }
好處:簡單、粗暴。無論你是在Adapter中,仍是在其餘Activity中,僅僅一句代碼就能夠關閉。(若是同個Activity打開屢次,能夠用數組解決)this
弊端:靜態Activity佔用內存spa
二、毀屍滅跡code
做用:臨時處理一些詭異的跳轉,好比A到B到C,在C按返回到A對象
代碼:內存
Intent intent = new Intent(this,MainActivity.class); startActivity(intent); finish();
好處:每次跳轉都會幹掉原先的Activity,想跳到哪一個界面就從新startActivity一次。這樣作的好處是不用花時間去想那些奇葩需求的跳轉邏輯,反正我全都幹掉,要顯示哪一個就跳哪一個。it
弊端:每次都要從新啓動Activity,須要加載時間,建議只在部分特殊場景使用
注意:部分手機可能會出現界面切換時,上一個界面先關閉,必定延遲後進入下個界面,給人感受像整個應用關閉了再重啓的樣子,要避免這種狀況,能夠弄個Handler延遲finish。
三、觀察者模式
做用:裝B
代碼:把全部Activity弄成觀察者,被觀察的對象是個單例工具類
好處:能夠在任何地方調用一句工具類代碼關閉或更新某個界面
弊端:實際上就是上面1的數組版本,靜態Activity太多,這樣很差很差