首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NotificationManager:取消(Id)不起作用

NotificationManager:取消(Id)不起作用
EN

Stack Overflow用户
提问于 2015-07-22 22:26:06
回答 1查看 746关注 0票数 0

从服务中,我显示了一条通知。我有这样的代码:

代码语言:javascript
复制
    public final static int NOTIFICATION = 1;   
    public final static int NOTIFICATION2 = 2;

case NOTIFICATION2:
    builder.setSmallIcon(R.drawable.ic_action_about);
                builder.setContentTitle(context.getString(R.string.app_name));
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        for(int i=0;i<10;i++) {
                            builder.setContentInfo(i+"/"+10);
                            notificationManager.notify(NOTIFICATION2, builder.build());
                            try {
                                Thread.sleep(1000);
                            } catch (InterruptedException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                        }
                    }               
                }).start(); 
                notificationManager.cancel(NOTIFICATION2);
break;

代码运行得很好,但是当线程完成时,Notification仍然存在。为什么?我想取消它,但cancel()不起作用。

EN

回答 1

Stack Overflow用户

发布于 2015-07-22 22:28:54

因为启动了显示通知的异步线程,所以会立即调用notificationManager.cancel(NOTIFICATION2);。这意味着当您取消通知时,您的通知尚未显示。

尝试将notificationManager.cancel(NOTIFICATION2);移到run()方法中。

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

https://stackoverflow.com/questions/31565994

复制
相关文章

相似问题

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