intent傳值更新問題
原文:https://phenix.blogbus.com/logs/220656659.html
在做android推送的功能時,發現一個基礎問題.activity的啟動模式是singleTask.activity通過intent傳遞數據的時候,如果activity未啟動,那麼在這個剛啟動的activity裏通過getIntent()會獲取到這個intent的數據.如果要啟動的activity是已經存在的,這時候通過getInten()方法獲取到的intent是已啟動的activity的原始intent.換句話說intent的數據沒有更新.這樣在已啟動的activity裏拿到的intent的數據是舊數據.如果要每次獲取intent傳來的新數據就需要在onNewIntent(Intent
intent)方法裏調用setIntent(intent)設置這個傳來的最新的intent.
如果activity的啟動模式是standard,那麼每次都重新創建一個新的activity.這樣intent也是最新的.就不用通過setIntent來更新這個intent.
另外發現一個問題是PendingIntent在啟動activity的時候需要將構造裏的第4個參數設置為PendingIntent.FLAG_UPDATE_CURRENT.否則這個PendingIntent如果存在也不會更新.那麼傳過去的數據仍然是舊數據.
最後更新:2017-04-04 07:03:18