首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >android NotificationCompat.Builder getNotification自动发送通知

android NotificationCompat.Builder getNotification自动发送通知
EN

Stack Overflow用户
提问于 2013-01-27 18:59:16
回答 2查看 2.6K关注 0票数 1

您好,当我收到一条广播消息时,我正在尝试用BroadcastReceiver发送通知。来自Parse.com。但是,当从NotificationCompat.Builder的实例调用getNotification方法时,通知会自动发送并显示为带有封装的contextText。因此,当调用mNotificationManager.notify时,会出现两个通知,一个有指定的内容文本,另一个没有。我在空气污染指数16级。

以下是我的BroadcastReceiver代码,请帮助我。非常感谢!

代码语言:javascript
复制
 @Override
public void onReceive(Context context, Intent intent) {
    try {
        String action = intent.getAction();
        if (intent.getExtras() != null) {

            JSONObject json = new JSONObject(intent.getExtras().getString(
                    "com.parse.Data"));

            String text = json.getString("text");
            String title = json.getString("title");
            Long timestamp = json.getLong("timestamp");
            String qid = json.getString("qid");

            NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
                    context).setSmallIcon(R.drawable.ic_launcher)
                    .setContentTitle(title)
                    .setContentText(text)
                    .setTicker("New Reply");

            Intent resultIntent = new Intent(context,
                    QuestionViewActivity.class);
            resultIntent.putExtra(QuestionViewActivity.EXTRA_QUESTION_ID,
                    qid);

            TaskStackBuilder stackBuilder = TaskStackBuilder.from(context);
            stackBuilder.addParentStack(MainActivity.class);
            stackBuilder.addNextIntent(resultIntent);
            PendingIntent resultPendingIntent = stackBuilder
                    .getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
            mBuilder.setContentIntent(resultPendingIntent);

            NotificationManager mNotificationManager = (NotificationManager) context
                    .getSystemService(Context.NOTIFICATION_SERVICE);

            Notification n = mBuilder.getNotification();
            mNotificationManager.notify(qid.hashCode(),
                    mBuilder.getNotification());
        }
EN

回答 2

Stack Overflow用户

发布于 2013-01-28 06:17:26

我终于明白了:

对于no

  • ()方法的构建支持:这是由使用旧版本android--v4.jar的ActionBarSherlock引起的。只需将该jar替换为来自/SDK/extras/android/support/v4/android-support-v4.jar
  1. For复制通知的更新的jar:它是由解析(parse.com)服务引起的。当接收到JSON数据中带有“标题”的解析通知库发送的推送时,服务会自动显示带有封装的contentText的通知,比如“您收到了通知”。这里我用来禁用自动通知的一个技巧是,不要在解析推送的JSON数据中使用"title“和"text”,而是使用其他名称,然后在自定义的广播接收器中解析它。它现在运行得很好。

谢谢!

票数 2
EN

Stack Overflow用户

发布于 2013-01-27 19:10:06

http://developer.android.com/reference/android/app/Notification.Builder.html#build()

getNotification()已弃用。为什么不使用build()呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14546665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档