Android 簽名打包後的APP在後臺執行時按icon導致程式重啟的奇葩問題解決
阿新 • • 發佈:2019-02-15
前言
公司專案在完結時遇到一個問題,用正式簽名打包後進行測試發現,在程式正常執行時按下home鍵返回桌面,此時再點選APP的icon並不會回到之前的狀態,而是會從splash頁開始重啟程式,而從任務列表裡開啟APP則無此問題,在debug簽名下也並沒有遇到這個問題.後來查了查據說這是studio打包的bug.解決方法如下
在你的啟動頁onCreate方法中加入如下程式碼:
if (!isTaskRoot()) {
finish();
return;
}
isTaskRoot()是判斷當前activity是否是當前任務棧中的最早的(最後一個)activity,是返回true,否則返回false.
我的理解是如果第一頁不是任務棧中的最初的activity則說明任務棧之前已經存在,則finish掉當前頁並return,此時則顯示出當前任務棧最上層的activity,如果理解有誤,還請各位朋友評論中指導下~~.
這是isTaskRoot()方法及註釋
/**
* Return whether this activity is the root of a task. The root is the
* first activity in a task.
*
* @return True if this is the root activity, else false.
*/
public boolean isTaskRoot() {
try {
return ActivityManagerNative.getDefault().getTaskForActivity(mToken, true) >= 0;
} catch (RemoteException e) {
return false;
}
}