0

的onNewIntent方法數據我得到了我的FireBaseService推送通知和我想給它的數據MainActivity,下面是我的代碼:我沒有得到我的包在MainActivity

 Intent intent = new Intent("PUSH_NOTIFICATION"); 
    intent.setClassName(this, MainActivity.class.getName()); 
    Bundle bundle = new Bundle(); 
    bundle.putParcelable("data", data); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    intent.putExtra("notification bundle", bundle); 
    startActivity(intent); 

onNewIntent()被調用,但當我解析它時,它給了我空數據。我做錯了什麼嗎?

在此先感謝。

編輯:我的MainActivity發射模式是singleTop(得到它相同的實例)

回答

0

我最近在我的應用程序中實現火力地堡的通知和我面臨同樣的問題。問題出在通過Firebase控制檯發送的通知和應用程序在後臺時,onMessageReceived方法未被調用,onNewIntent()方法返回null。

嘗試通過PostMan(RestApi客戶端)發送具有相同有效負載的推送通知。然後您將能夠接收和獲取您的接收器的方法onMessageRecieved中的數據。

+0

感謝Aditi,但我通過onMessageReceived接收數據,並沒有問題(無論是背景或前景),如果您有問題,我可以稍後再幫助您,但這不是我的問題 – MehDi

+0

您是否通過Firebase控制檯發送數據?如果您的onMessageReceieved被調用,您可以通過此方法進一步定義應用程序的流程。沒有必要使用onNewIntent – Aditi

0

我找到了答案,我在Stackoverflow上讀到Bundles有Parcelable對象的問題,最好將它們轉換爲Byte數組,然後將它們綁定到Bundles,但我沒有測試它,但我綁定了JSON字符串本身併發送它與捆綁,然後解析它onNewIntent()方法,而不是解析它,併發送parcelable對象,它的工作