1. 程式人生 > >Android之基礎系列(二)

Android之基礎系列(二)

活動的啟動模式

1.standard 系統預設的啟動模式 (不管活動有沒有 反正啟動了就建立新的物件 感覺挺傻的) 2.singleTop 舉例:如果只有活動一存在 則不管怎麼啟動 只會有一個物件,不會建立新的物件 如果兩個活動存在 活動一去啟動活動二的話 然後活動二啟動活動一的時候 活動一又會被重新建立 因此這個啟動模式針對一個活動挺好 多了則與standard沒區別 (還是有點傻) 3.singleTask 只要棧中有活動存在 就會去尋找需要啟動的活動 如果有則啟動原來的沒有就建立新的 舉例:活動一啟動活動二 活動二去啟動活動一 則活動二銷燬 原來的活動一啟動 (稍微好點 不過由於活動是棧結構 導致活動二銷燬) 4.singleInstance 較為複雜的啟動模式,會建立獨有的返回棧(可以實現活動共享) 在這裡插入圖片描述

我來說明一下這個圖 活動一啟動活動二(但是活動二由於啟動模式的不同會存在另一個活動中) 然後活動二去啟動活動三 但返回的時候 活動三是直接返回到活動一的(因為活動一與活動三是位於一個返回棧中) 最後返回到活動二

============================================================ 使用小技巧一

知曉當前活動是哪個活動

建立一個BaseActivity類 然後功能則是列印每個類的類名 然後再讓以後的Activity的子類 去繼承BaseActivity 在這裡插入圖片描述 使用技巧二 隨時隨地退出程式(目的是有時候 啟動了太多活動 用這種辦法可以直接退出所有活動 不需要去一個個的back) 通過BaseActivity 來把活動新增到 列表裡 然後在去操作 在這裡插入圖片描述

在這裡插入圖片描述

這是用來消滅之前的所有活動 android.os.Process.killProcess(android.os.Process.myPid()); 是表示殺掉當前的執行緒 在這裡插入圖片描述

使用小技巧三 啟動活動的最佳寫法 自定義一個actionStart 方法 (上下文引數 資料1 資料2) 在這裡插入圖片描述 啟動就直接這樣啟動就可以了 在這裡插入圖片描述