android應用程式安裝後點擊開啟帶來的問題
阿新 • • 發佈:2018-12-11
前幾天專案組反饋回來一個這樣的情況就是我在安裝應用之後點選了開啟 然後按home鍵 這個時候應用程式進入後臺 我點選手機桌面的時候圖片啟動應用程式 程式重新再次啟動 而不是後臺的程式返回到前臺;
/** *Demo描述: *幾天前遇到一個問題: *1 客戶從GooglePlay上下載了我參與的開發的應用 *2 下載完成後,點選安裝 *3 安裝完成後,在螢幕底部有兩個選項"開啟"和"完成" *4 點選開啟 *5 App進入到第一個Activity,此時簡單地操作:比如在一個EditText上輸入文字 *6 按下HOME鍵 *7 在桌面上找到該應用的ICON,點選後進入應用 * *問題就在此時發生了,原先顯示在EditText的文字不見了........ *當時是覺得很奇怪的.看了Log才知道原來是Activity重新 *執行了onCreate()和onStart()以及onResume(). * *客戶抓著這個問題不放,我也一直半會給不出合理的解釋.怎麼辦呢? *我測試了GooglePlay上的其餘幾款APP,也發現了同樣的問題.於是我給客戶說: *這是Android系統的問題,很難解決.好在客戶通情達理沒有糾纏,這事也就過去了. *但這個問題一直在我心裡埋著. * *最近偶然在CSDN上又看到一篇部落格在談論該問題.我於是去stackoverflow找答案. *看到了解決的辦法,但是說實話,程式碼我卻沒有看懂.最核心的這一句: *if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) */ public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0){ finish(); return; } setContentView(R.layout.main); } @Override protected void onStart() { super.onStart(); System.out.println("--->onStart()"); } @Override protected void onResume() { super.onResume(); System.out.println("--->onResume()"); } }