2014-12-03 54 views
0

我已經設置瞭解析推送通知,並且當我嘗試打開它時,我的應用程序崩潰了,現在我發現了一個解決方法,使我創建一個新的java類並覆蓋onPushOpen像這樣:Android - 解析推送通知崩潰打開

public class Receiver extends ParsePushBroadcastReceiver { 

    @Override 
    public void onPushOpen(Context context, Intent intent) { 
     Intent i = new Intent(context, MainActivity.class); 
     i.putExtras(intent.getExtras()); 
     i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(i); 
    } 
} 

但爲了仍然收到推送通知我仍然需要這種折舊方法在我MyApplication.java類PushService.setDefaultPushCallback(this, MainActivity.class);

我怎麼能擺脫這種折舊方法我已經看過這個問題的,我得到了一些但它沒有回答關於折舊方法的這部分內容。 Exception when opening Parse push notification

我在想,也許這種方法可能會過度,但林不知道它是否嚴格處理收回推或更多的處理推後,它已收到?

@Override 
    public void onPushReceive(final Context c, Intent i) { 
     // Handle the received push 
    } 

感謝您的幫助提前。

+0

https://www.parse.com/docs/push_guide#top/Android。你使用什麼解析jar版本? – Raghunandan 2014-12-03 02:04:37

+0

@Raghunandan我正在使用1.7.1最新版本,並且我按照快速步驟指南查看了文檔,並且如果您查看PushService.setDefaultPushCallback方法,則表示它折舊。 – iqueqiorio 2014-12-03 02:27:57

+0

這是不需要的。你有自定義的廣播接收器。你需要做的就是在那裏顯示通知。 – Raghunandan 2014-12-03 02:32:18

回答

0

您正在繼承ParsePushBroadcastReceiver

然後,在清單

<receiver 
     android:name=".Receiver " // your broadcastreceiver 
     android:exported="false" > 
     <intent-filter> 
      // youtr actions 
     </intent-filter> 
    </receiver> 

在廣播接收器

public class Receiver extends ParseBroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 

    super.onReceive(context, intent); 

     extras = intent.getExtras(); 
     if(intent.hasExtra("com.parse.Data")) 
     { 
      try 
      { 
      json = new JSONObject(intent.getExtras().getString("com.parse.Data")); 
      int notificationtype = json.getInt("notificationtype"); // this is send on the sender side 
      switch(notificationtype) 
      { 
       case 1: 

        // show your custom notification. Refer android notification guide 

       break; 
       case 2: 
       //rest of the code 

注意:如果任一「警報」或「標題」是在推指定,則通知使用getNotification構成。所以發件人一方沒有提醒和標題。

讀管理推送生命週期@

https://www.parse.com/docs/push_guide#receiving/Android

參考

https://www.parse.com/questions/how-suppress-push-notification-from-being-displayed

+0

在'新的JSONObject'行上我得到編譯錯誤'Unhanded exception org.JSON.JSONException'和'extras = intent.getExtras();'complie error'無法解析符號額外信息' – iqueqiorio 2014-12-03 02:56:13

+0

@iqueqiorio您需要聲明額外項目爲「Bundle extras」。這也取決於你如何在發送方發送數據。你使用json嗎?這是你要弄清楚的。 – Raghunandan 2014-12-03 02:57:30

+0

我只是通過雲代碼發送文本字符串,所以沒有我只是發送純文本。那麼我不需要JSON部分? – iqueqiorio 2014-12-03 02:59:34