有一天測試同事下載發(fā)布的安裝包之后以故,使用中坦弟,home鍵护锤,點擊圖標(biāo)總會出現(xiàn)重啟應(yīng)用的問題,我這邊直接android studio 安裝沒有問題酿傍,一開始以為是系統(tǒng)內(nèi)存不足回收了烙懦,于是自己測試,開很多應(yīng)用赤炒,跑視頻氯析,音樂,查看手機剩余內(nèi)存可霎,貌似并有出現(xiàn)(還是AS安裝)
后來就懷疑是不是發(fā)布的安裝包有問題,下載試了一下宴杀,我是直接點擊完成癣朗,并沒有使用安裝之后的“打開” 按鈕去啟動應(yīng)用,貌似也沒有出現(xiàn)問題旺罢,這就納悶了
于是就邀請測試演示一下操作流程旷余,結(jié)果發(fā)現(xiàn),就是安裝完之后是點擊“完成”和“打開”去別扁达,其他并沒有異樣正卧,然后用兩臺手機分別啟動自測
果然,這就是坑9蚪狻B酢!!>叫小饥追!
去查找相關(guān)問題,原來是 利用程序安裝器打開程序罐盔,啟動的Intent是沒有帶Category但绕,而我們自己打開程序是帶了Category,所以只需要在配置Intent.ACTION_MAIN的Activity判斷下有無Category。然后放到通知欄的時候要更具有無Category?來生成啟動的Intent
網(wǎng)友提供的解決方案有兩種
1惶看、
if (!isTaskRoot()) { ?
? ? ? ?/* If this is not the root activity */ ?
? ? ? ?Intent intent = getIntent(); ?
? ? ? ?String action = intent.getAction(); ?
? ? ? ?if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN.equals(action)) { ?
? ? ? ? ? ?finish(); ?
? ? ? ? ? ?return; ?
? ? ? ?} ?
? ?}
2捏顺、
if((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0){
? finish();
? return;
}
前提這兩種需要在你的rootactivity,也就是啟動界面去加纬黎,
同時 在super.onCreate(savedInstanceState);之后
setContentView()幅骄;之前
調(diào)用!SㄎΑ昌执!
注意是啟動頁添加!
感謝網(wǎng)友诈泼!