2014-12-30 73 views
0

我將parse.com的通知發送給我的用戶。我在BroadcastReceiver中收到此消息,並在那裏做其他工作。android-BroadcastReceiver中的解析通知時禁用通知

問題是我收到每封郵件的通知,我不希望我的用戶看到此通知。我從parse.com發送json數據,而usrrs不應該看到類似這樣的內容。

這是broadcaseRecevier代碼:

public class ParseBroadcastReceiver extends BroadcastReceiver { 
JSONArray contacts = null; 

@Override 
public void onReceive(Context context, Intent intent) { 
    Bundle extra = intent.getExtras(); 
    String json = extra.getString("com.parse.Data"); 
    JSONObject jObject; 

    try { 
     jObject = new JSONObject(json); 
     //jObject.optString("alert") 
     Log.v("this",jObject.getString("alert").replace("data:","")); 
     JSONObject jsons = new JSONObject(jObject.getString("alert").replace("data:","")); 

     String strTel = jsons.getString("tel"); 

    } catch (JSONException e) { 
     Log.v("this","error "+e.getMessage()); 
    } 
} 
} 

我敢肯定,它涉及到這個類。

回答

1

如果您不希望Parse在收到廣播時生成通知,則可以創建自定義通知。

看起來這SO就是一個很好的例子:Not Receiving Parse Push Notifications on Android in Custom BroadcastReceiver

基本上想法是發送和使用JSON「動作」屬性,包含一個Intent的名稱。一旦收到推送,這個意圖就會被觸發(發送廣播)。然後,您的自定義廣播接收器,聽'行動'的名稱,可以處理收到的JSON任何你喜歡的方式。

快速查看了文檔:https://parse.com/docs/push_guide#options/Android並注意到'action'參數不再提及,但它確實仍然受支持,因爲我目前依賴它。

如果任何parse.com員工看到這一點,那麼對推送通知文檔中缺少的「操作」參數發表評論會很好。

更新:

我沒有testet它自己,但在文檔:https://parse.com/docs/push_guide#receiving-responding/Android部分:Managing the Push Lifecycle意味着您可以:

  • 子類ParsePushBroadcastReceiver
  • 並避免違約通知生成要麼是:
    • 將'alert'重命名爲somethin g else,例如「數據」
    • 或報價:

有人可能會覆蓋onPushReceive觸發後臺操作的「沉默」推,然後委託給超對所有其他推

Update2:

在Google Group討論中爲Parse打開了一個問題,發現第對Intent方法的'行動'已被棄用(這就是爲什麼它沒有被記錄下來)。

https://groups.google.com/forum/#!topic/parse-developers/NLT64ObeaBY