閱讀834 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

  上一篇:go 惡搞必備 炫酷Win 8十大令人抓狂惡作劇
  下一篇:go Excel中製作下拉菜單