【友盟+】开发者社区

android demo 自定义消息处理代码示例

老辛 发表于 2017-12-18 17:30:36 |

老辛
老辛 发表于 2015-7-16 13:42:11 | 显示全部楼层 |阅读模式
以下是android Demo中自定义通知消息处理的代码示例:

[Java] 纯文本查看 复制代码
UmengMessageHandler messageHandler = new UmengMessageHandler(){
                        @Override
                        public void dealWithCustomMessage(final Context context, final UMessage msg) {
                                new Handler().post(new Runnable() {
                                        
                                        @Override
                                        public void run() {
                                                // TODO Auto-generated method stub
                                                // 对自定义消息的处理方式,点击或者忽略
                                                boolean isClickOrDismissed = true;
                                                if(isClickOrDismissed) {
//统计自定义消息的打开
                                                        UTrack.getInstance(getApplicationContext()).trackMsgClick(msg);
                                                } else {
//统计自定义消息的忽略
                                                        UTrack.getInstance(getApplicationContext()).trackMsgDismissed(msg);
                                                }
                                                Toast.makeText(context, msg.custom, Toast.LENGTH_LONG).show();
                                        }
                                });
                        }
                        
//自定义通知样式
                        @Override
                        public Notification getNotification(Context context,
                                        UMessage msg) {
                                switch (msg.builder_id) {
                                //自定义通知样式编号
case 1:
                                        NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
                                        RemoteViews myNotificationView = new RemoteViews(context.getPackageName(), R.layout.notification_view);
                                        myNotificationView.setTextViewText(R.id.notification_title, msg.title);
                                        myNotificationView.setTextViewText(R.id.notification_text, msg.text);
                                        myNotificationView.setImageViewBitmap(R.id.notification_large_icon, getLargeIcon(context, msg));
                                        myNotificationView.setImageViewResource(R.id.notification_small_icon, getSmallIconId(context, msg));
                                        builder.setContent(myNotificationView);
                                        builder.setAutoCancel(true);
                                        Notification mNotification = builder.build();
                                        //由于Android v4包的bug,在2.3及以下系统,Builder创建出来的Notification,并没有设置RemoteView,故需要添加此代码
                                        mNotification.contentView = myNotificationView;
                                        return mNotification;
                                default:
                                        //默认为0,若填写的builder_id并不存在,也使用默认。
                                        return super.getNotification(context, msg);
                                }
                        }
                };

                /**
                 * 该Handler是在BroadcastReceiver中被调用,故
                 * 如果需启动Activity,需添加Intent.FLAG_ACTIVITY_NEW_TASK
                 * 参考集成文档的1.6.2
                 * [url=http://dev.umeng.com/push/android/integration#1_6_2]http://dev.umeng.com/push/android/integration#1_6_2[/url]
                 * */
                UmengNotificationClickHandler notificationClickHandler = new UmengNotificationClickHandler(){
                        //点击通知的自定义行为
@Override
                        public void dealWithCustomAction(Context context, UMessage msg) {
                                Toast.makeText(context, msg.custom, Toast.LENGTH_LONG).show();
                        }
                };





上一篇:消息推送SDK与支付宝SDK冲突
下一篇:小白集成友盟推送Android 2.4.1(图文并茂)


南朝小木瓜
南朝小木瓜 发表于 2016-9-19 13:47:49 | 显示全部楼层
为什么自定义消息我明明看log在BaseIntentService这个都接收到了消息,但是在application里重写接收自定义消息方法却没有执行到??









为什么限制长度
为什么限制长度 发表于 2017-12-18 17:30:36 | 显示全部楼层
原来不止我一个人发现这个问题啊,友盟解决问题的速度也太慢了吧,从反馈到现在都几个月了,还没解决
您需要登录后才可以发帖 登录 | 立即注册

本版积分规则

发表主题

精彩推荐

如何使用智能短链?
如何使用智能短链?使用场景:线下扫码、官网扫码、邮件推广、资源互换等,这些非广告平台的定向推广模式,
大数据商圈分析:消费者只看不买,怎么办?
以前,商场坐落在市中心的繁华地段,就引进高档轻奢品牌;在写字楼林立的商务区,就定位快时尚;在高档小区
区分搜索引擎关键字效果,拒绝推广费打水漂
区分搜索引擎关键字效果,拒绝推广费打水漂 当您通过搜索引擎推广时,通常会选大量的目标关键词,但却无法

关注我们

新浪微博
微信

欢迎关注友盟官方微博微信!

在线客服
返回顶部 返回列表