android-在BroadcastReceiver中收到解析通知时禁用通知

时间:2014-12-30 15:54:51

标签: android parse-platform android-notifications

我将parse.com的通知发送给我的用户。我在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 个答案:

答案 0 :(得分:1)

如果您不希望Parse在收到广播时生成通知,您可以创建自定义通知。

看起来这是一个很好的例子:Not Receiving Parse Push Notifications on Android in Custom BroadcastReceiver

基本上,我们的想法是使用JSON发送和'action'属性,其中包含Intent的名称。一旦收到推送,就会触发此意图(发送广播)。然后,您的自定义广播接收器可以按照您喜欢的方式处理收到的JSON。

快速查看文档:{​​{3}}并注意到'action'参数已不再提及,但确实仍然支持,因为我目前正依赖它。

如果任何parse.com员工看到这一点,那么在推送通知文档中对缺少的“action”参数发表评论会很不错。

<强>更新

我自己没有测试过,但是https://parse.com/docs/push_guide#options/Android部分的文档:Managing the Push Lifecycle意味着您可以:

  • Subclass ParsePushBroadcastReceiver
  • 并且要避免默认通知生成:
    • 将'alert'重命名为其他内容,例如'数据'
    • 或引用:
  

有人可能会覆盖onPushReceive来触发“静默”推送的后台操作,然后委托超级进行所有其他推送

<强> UPDATE2:

在Google Group的Parse讨论中打开了一个问题,发现不推荐使用Intent方法的“操作”(这就是为什么它不再被记录)。

https://parse.com/docs/push_guide#receiving-responding/Android