首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >隐藏持久通知

隐藏持久通知
EN

Stack Overflow用户
提问于 2016-07-31 11:03:12
回答 1查看 2K关注 0票数 3

如何在我的应用程序中隐藏持久通知?

目前,我的通知也显示在锁定屏幕上,但我不想。我只希望当我滑动通知菜单时,通知才会出现。

我知道这是可能的,因为我有一个名为WiFi ADB的应用程序,它就是这样做的。(TouchWiz安卓5.0.1)

这是我的通知的代码(它在服务中):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Override
public int onStartCommand(Intent intent, int _flags, int _startId) {
    Intent notificationIntent = new Intent(this, MainActivity.class);
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

    noti = new Notification.Builder(getApplicationContext())
            .setContentTitle("Title")
            .setContentText("Subtitle")
            .setSmallIcon(R.mipmap.ic_launcher)
            .setContentIntent(contentIntent)
            .build();
    startForeground(1234, noti);
    mLocalBroadcastManager.sendBroadcast(new Intent(SERVICE_STARTED));
    return Service.START_STICKY;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-31 11:58:58

使用setVisibility(NotificationCompat.VISIBILITY_SECRET) & setPriority(Notification.PRIORITY_MIN)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mNotification = new Notification.Builder(getApplicationContext())
        .setContentTitle("Title")
        .setContentText("Subtitle")
        .setSmallIcon(R.mipmap.ic_launcher)
        .setContentIntent(contentIntent)
        .setOngoing(true)
        .setVisibility(NotificationCompat.VISIBILITY_SECRET)
        .setPriority(Notification.PRIORITY_MIN)
        .build();

对于VISIBILITY_SECRET

通知可见性:不要在安全的锁定屏幕上显示此通知的任何部分。

对于PRIORITY_MIN

优先级最低;除非在特殊情况下(如详细通知日志),否则可能不会向用户显示这些项。

如果您仍然希望在状态栏中显示图标,则没有选项可供选择,但您可以通过订阅USER_PRESENT & SCREEN_OFF事件来构建一个简单的解决方案:

  • 收到SCREEN_OFF事件时取消通知
  • 收到USER_PRESENT后再通知

注册BroadcastReceiver &通知默认通知:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mNotificationmanager =
        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.USER_PRESENT");
filter.addAction("android.intent.action.SCREEN_OFF");
registerReceiver(mBroadcastReceiver, filter);

Intent notificationIntent = new Intent(this, YourActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

mNotification = new Notification.Builder(getApplicationContext())
        .setContentTitle("Title")
        .setContentText("Subtitle")
        .setSmallIcon(R.mipmap.ic_launcher)
        .setContentIntent(contentIntent)
        .setOngoing(true)
        .build();
mNotificationmanager.notify(NOTIF_ID, mNotification);

BroadcastReceiver cancel on SCREEN_OFF中,通知USER_PRESENT

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {

        Log.v("test", intent.getAction());

        if (intent.getAction().equals("android.intent.action.SCREEN_OFF")) {
            mNotificationmanager.cancel(NOTIF_ID);
        } else if (intent.getAction().equals("android.intent.action.USER_PRESENT")) {
            mNotificationmanager.notify(NOTIF_ID, mNotification);
        }

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

https://stackoverflow.com/questions/38687451

复制
相关文章
【业界】iOS Bug解决办法:如何防止Siri读出隐藏的通知
AiTechYun 编辑:yuxiangyu 尽管苹果尚未针对iOS错误展开修复,使得Siri能够读出隐藏的锁屏通知,但以下方法可以解决目前的安全漏洞。 苹果的内部人员分享了一些解决办法,以防止Si
AiTechYun
2018/04/19
1.2K0
【业界】iOS Bug解决办法:如何防止Siri读出隐藏的通知
Jenkins构建通知--邮件通知
步骤如下: 1.进入Manage Jenkins→Configure System→Jenkins Location设置页面,设置管理员邮箱
陈不成i
2021/06/02
2.9K0
Redis 持久化之AOF持久化&混合持久化
RDB(snapshotting) 是一种内存快照的方式进行持久化,AOF(append-only-file)是通过追加写入命令的方式进行持久化,混合持久化是指RDB和AOF协同完成持久化工作来发挥各自有点的持久化方式。
邹志全
2019/07/31
1.7K0
Jenkins构建通知--HTTP请求通知
使用HTTP Request插件,我们能在Jenkins pipeline中发送HTTP请求给第三方系统。这是最通用的Jenkins与第三方系统集成的方式之一。
陈不成i
2021/06/02
3.1K0
通知:清明节放假通知
清明休假三天,但DNSPod服务不休假哦,阿D会一如既往的为您提供优质服务。假期安排如下: • 放假时间:2014年4月5日——4月7日,共3天;4月8日正常上班。 • 清明放假期间,为了保证DNSPod各项服务的正常与稳定,阿D安排了值班人员。 有关解析问题请大家【提交工单】或致电:400-111-1234,提交问题让值班人员为您处理。 注:清明放假期间,由于值班人员有限,阿D可能会出现不能及时接听您的电话或回复您的消息的情况。但请您放心,值班人员会在最短的时间内回复您的问题,由此给您造成的不便,敬请您
腾讯云DNSPod团队
2023/05/04
1.2K0
通知:清明节放假通知
Android 8.0无法发送通知栏?通知栏适配通知渠道
  不得不说Andoird的通知栏相比于IOS在使用上有着明显的不足,不仅是体验上的差异,还有大量的非关注通知铺满了通知栏,导致通知栏混乱,杂多。   为什么一个很好的通知栏功能现在却变得这么遭用户讨厌?很大一部分原因都是因为开发者没有节制地使用导致的。每个开发者都只想着尽可能地去宣传自己的App,最后用户的手机就乱得跟鸡窝一样了。但是通知栏又还是有用处的,比如我们收到微信、短信等消息的时候,确实需要通知栏给我们提醒。因此分析下来,通知栏目前最大的问题就是,无法让用户对感兴趣和不感兴趣的消息进行区分。就比如说,我希望淘宝向我推送卖家发货和物流的相关消息,但是我不想收到那些打折促销或者是让我去买衣服的这类消息。那么就目前来说,是没有办法对这些消息做区分的,我要么同意接受所有消息,要么就屏蔽所有消息,这是当前通知栏的痛点。   那么在Android 8.0系统中,Google也是从这个痛点开始下手的。
饮水思源为名
2018/09/06
3.6K0
【CSS】元素显示与隐藏 ( display 隐藏对象 | visibility 隐藏对象 | overflow 隐藏对象 )
设置 display: block 可以显示元素 , 同时该样式还可以将元素转为块元素 ;
韩曙亮
2023/04/16
5.5K0
【CSS】元素显示与隐藏 ( display 隐藏对象 | visibility 隐藏对象 | overflow 隐藏对象 )
通知 - NSNotificationCenter
1、每一个应用程序都有一个通知中心(NSNotificationCenter)实例,专门负责协助不同对象之间的消息通信;
tandaxia
2018/09/27
1.1K0
通知 - NSNotificationCenter
创建通知
通知提供了有关应用程序未使用时的事件的简短而及时的信息。这篇文章教你怎么通过Android4.0及以上版本的各种功能去创建一个通知。有关通知怎么在Android上显示,Android 通知
佛系编码
2019/12/11
1.9K0
创建通知
Redis 持久化之RDB持久化
Redis 相对于其他NoSQL 内存数据库而言,除了更富的数据结构和速度快之外,Redis 的丰富的持久化方案也就一个很显著的优势,Redis 支持RDB、AOF、混合持久化三种模式。RDB(snapshotting) 是一种内存快照的方式进行持久化,AOF(append-only-file)是通过追加写入命令的方式进行持久化,混合持久化是指RDB和AOF协同完成持久化工作来发挥各自有点的持久化方式。
邹志全
2019/07/31
6030
iOS开发--本地通知与远程通知
1、NSNotification是系统内部发出通知,一般用于内部事件的监听,或者状态的改变等等,是不可见的 2、本地通知与远程通知是可见的,主要用于告知用户或者发送一些App的内容更新,推送一些相关的消息,让用户知道App内部发生了什么事情。
孙寅
2020/06/02
3.3K0
APK的更新、安装、隐藏、解除隐藏
hide命令:系统会发送广播 android.intent.action.PACKAGE_REMOVED,data数据并不会删除 unhide命令:系统会发送广播android.intent.action.PACKAGE_ADDED,data数据不会删除
程序员小何SS
2021/12/13
2.7K0
切面编程(环绕通知与前后置通知区别)
1、拥有前置通知和后置通知的功能,并能解决前置通知和后置通知在共享信息方面的不足(例如:统计切点方法执行时间);
yaphetsfang
2020/07/30
2K0
切面编程(环绕通知与前后置通知区别)
xwiki功能-通知
在XWiki你可以通过邮件或者通过RSS(在页面有变化时,消息来源feed自动更新)订阅来接受通知。通过使用监视列表应用程序的用户可以添加特定页面和空间,以及个人的监视列表。
lovelife110
2021/01/14
7470
代理和通知
代理和通知 代理的使用步骤 定义一份代理协议 协议名字的格式一般是:类名 + Delegate 比如UITableViewDelegate 代理方法细节 一般都是@optional 方法名一般都以类名开头 比如- (void)scrollViewDidScroll: 一般都需要将对象本身传出去 比如tableView的方法都会把tableView本身传出去 必须要遵守NSObject协议 比如@protocol XMGWineCellDelegate <NSObject> 声明一个代理属性 代
用户1941540
2018/05/11
5300
Laravel 消息通知
这个命令会在 app/Notifications 目录下生成一个新的通知类。每个通知类都包含一个 via 方法以及一个或多个消息构建的方法比如 toMail 或 toDatabase,它们会针对特定的渠道把通知转换为对应的消息。
崔哥
2023/03/24
1.2K0
[html5] (Notification) 桌面通知
[html5] (Notification) 桌面通知 前几天要做一个桌面通知的功能,翻查以前做的笔记,发现webkitNotifications这个已经不能用了,baidu了下,基本都是介绍webkitNotifications的,后来在SOF上找到答案,现在chrome支持的是Notification,估计是W3C标准化了。api也变了,mark之。 ---- Notification Properties title:"别动神仙说:" body:"这里是body" icon:"http://q4.ql
用户1631416
2018/04/11
1.3K0
[html5] (Notification) 桌面通知
Linux 通知 inotify
如果看到显示 max_queued_events max_user_instances max_user_watches 则说明支持inotify
为为为什么
2022/08/06
1.2K0
Redis持久化
Redis的持久化指的是将内存中redis数据库运行的数据,写到硬盘文件上。
用户7353950
2022/05/11
7230
Golang 持久化
持久化 程序可以定义为算法+数据。算法是我们的代码逻辑,代码逻辑处理数据。数据的存在形式并不单一,可以存在数据库,文件。无论存在什么地方,处理数据的时候都需要把数据读入内存。如果直接存在内存中,不就可以可以直接读了么?的确,数据可以存在内存中。涉及数据存储的的过程称之为持久化。下面golang中的数据持久化做简单的介绍。主要包括内存存储,文件存储和数据库存储。 内存存储 所谓内存存储,即定义一些数据结构,数组切片,图或者其他自定义结构,把需要持久化的数据存储在这些数据结构中。使用数据的时候可以直接操作这些结
李海彬
2018/03/26
2.6K0

相似问题

持久化通知

22

如何创建持久通知?

10

无服务的持久通知

11

创建windows 10持久通知

11

如何进行持久通知?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文