Activity的LaunchMode應用場景思考

2022-03-14 00:23:29 字數 1042 閱讀 5045

1. 有哪幾種型別?分別有什麼用?

standard,建立乙個新的activity。

singletop,棧頂不是該型別的activity,建立乙個新的activity。否則,onnewintent。

singletask,回退棧中沒有該型別的activity,建立activity,否則,onnewintent+cleartop。

singleinstance,回退棧中,只有這乙個activity,沒有其他activity。

2. 應用場景如何?

singletop適合接收通知啟動的內容顯示頁面。

例如,某個新聞客戶端的新聞內容頁面,如果收到10個新聞推送,每次都開啟乙個新聞內容頁面是很煩人的。

singletask適合作為程式入口點。

例如瀏覽器的主介面。不管從多少個應用啟動瀏覽器,只會啟動主介面一次,其餘情況都會走onnewintent,並且會清空主介面上面的其他頁面。

singleinstance適合需要與程式分離開的頁面。

例如鬧鈴提醒,將鬧鈴提醒與鬧鈴設定分離。

singleinstance不要用於中間頁面,如果用於中間頁面,跳轉會有問題,比如:a -> b (singleinstance) -> c,完全退出後,在此啟動,首先開啟的是b。

3. taskaffinity對launchmode的影響

不指定taskaffinity,singletask會在預設的task 中執行,這個符合預期,一般也都是這麼用的,不需要指定。

不指定taskaffinity,singleinstance之後啟動的頁面不能放倒singleinstance所在那個task中,會放倒預設的task中,不過一般singleinstance也不適合作為程式中間頁。

這篇文章對taskaffinity的說明還不錯,這個見過,不過自己還真沒用過。

ROS中的launch檔案

首先,ros中的launch檔案是自己建立的 我在ros包原始檔中並沒有發現 接下來是launch檔案的編寫,需要注意 1 開頭是,結尾是,兩者不同 2 寫法,每一條開頭都是node,然後是pkg type name 中間用空格隔開,結尾以 結束,例如 這算是最簡單的用法,高階的暫時還沒有用到,不會...

android APP如何實現launcher

android largeheap true android persistent true 在啟動的activity裡面新增filter android name android.intent.action.main android name android.intent.category.def...

獲取當前android系統的launcher包名

由於定製的原因,不同手機的launcher包名不一樣 比如 miui com.miui.home huawei com.huawei.android.launcher moto and htc com.android.launcher 但是android手機型別數量太多,不同手機的launcher都...