Android點擊通知頁面不刷新intent無法傳值問題

由於項目是單Activity多fragment實現的,做極光推送處理的時候要求點擊通知欄,跳轉到消息那個fragment,我們知道在推送裏面通過重寫BroadcastReceiver通過bundle拿到值設置跳轉的,很遺憾,那個Activity一直是在前臺的,並且啓動模式是:singleTask結果即便我的intent是:

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);

依然不行,最後通過查資料發現:

在Activity裏面重寫onNewIntent方法這樣變可以拿到intent傳遞的值,方法如下:
    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
  //需要注意的是:直接調用該方法的intent而不是通過getIntent()來取
    }

雖然比較簡單但是遇到挺棘手的,在這裏記錄一下。看了下這個onNewInten方法:

處理onNewIntent()來通知片段管理器沒有保存狀態。如果您正在處理新的意圖,並且可能要更改片段狀態,那麼一定要先調用這裏的超類。否則,如果您的狀態被保存,但是活動沒有停止,那麼您可能會得到一個onNewIntent()調用,它發生在onResume()之前,並且在那時嘗試執行fragment操作將拋出IllegalStateException,因爲fragment管理器認爲狀態仍然被保存。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章