Activity 啟動(dòng)模式為singleTop、singleTask時(shí)當(dāng)Activity界面已在棧頂再次開啟界面不會(huì)調(diào)用onCreate(),而是調(diào)用onNewIntent onResume
protected void onNewIntent(Intent intent)
intent 與getIntent()的區(qū)別
getIntent()獲取的是老的intent
例如:ActivityB可以通過點(diǎn)擊正常開啟青自,也能通過Receiver觸發(fā)開啟堂氯,在Receiver中設(shè)置標(biāo)記
正常開啟ActivityB:
getIntent().getBooleanExtra("ALARM",false); //值為默認(rèn)值false
此時(shí)觸發(fā)廣播银伟,標(biāo)記值為true
getIntent().getBooleanExtra("ALARM",false); //值依然為false,即此時(shí)獲取的是普通開啟的intent而不是廣播觸發(fā)的新的intent
intent.getBooleanExtra("ALARM",false); //值為true
當(dāng)使用onNewIntent(Intent intent) 并且后續(xù)需要用到getIntent需要在該方法內(nèi)調(diào)用setIntent(intent)