精华内容
下载资源
问答
  • //取消通知栏 Intent intent=new Intent(context,MainActivity.class); intent.putExtra("message",":"+sdf.format(new Date())); //用当前时间充当通知的id,这里是为了区分不同的通知,如果是同一个id,前者就会被...
        builder.setPriority(NotificationCompat.PRIORITY_LOW);
    

    NotificationCompat.PRIORITY_LOW 收缩在通知块中,不会显示全部,点击通知栏后,才会显示

    • 通知栏关闭音效:channel.setSound(null, null); 在notification中:.setSound(null)
      再将chanel_idchanel_name换一个唯一的,这样就ok了 常驻通知栏: NotificationManager
      notificationManager= (NotificationManager)
      context.getSystemService(Context.NOTIFICATION_SERVICE);//常驻通知栏

      普通的就设置:Context.NOTIFICATION_SERVICE

    
    
    public class NotificationHelper {
        private static final String CHANNEL_ID="channel_id";   //通道渠道id
        public static final String  CHANEL_NAME="chanel_name"; //通道渠道名称
        private static SimpleDateFormat sdf=new SimpleDateFormat("HH:mm:ss");
    
    
        @TargetApi(Build.VERSION_CODES.O)
        public static  void  show(Context context){
            NotificationChannel channel = null;
            if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){
                //创建 通知通道  channelid和channelname是必须的(自己命名就好)
                channel = new NotificationChannel(CHANNEL_ID, CHANEL_NAME, NotificationManager.IMPORTANCE_DEFAULT);
                channel.enableLights(true);//是否在桌面icon右上角展示小红点
                channel.setLightColor(Color.GREEN);//小红点颜色
                channel.setShowBadge(false); //是否在久按桌面图标时显示此渠道的通知
            }
            Notification notification;
            //获取Notification实例   获取Notification实例有很多方法处理    在此我只展示通用的方法(虽然这种方式是属于api16以上,但是已经可以了,毕竟16以下的Android机很少了,如果非要全面兼容可以用)
            if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){
                //向上兼容 用Notification.Builder构造notification对象
    
                notification = new Notification.Builder(context,CHANNEL_ID)
                        .setContentTitle("通知栏标题1")
                        .setContentText("这是消息通过通知栏的内容1")
                        .setWhen(System.currentTimeMillis())
                        .setSmallIcon(R.drawable.ic_launcher_background)
                        .setColor(Color.parseColor("#FEDA26"))
                        .setLargeIcon(BitmapFactory.decodeResource(context.getResources(),R.mipmap.ic_launcher))
                        .setTicker("巴士门1")
                        .build();
            }else {
                //向下兼容 用NotificationCompat.Builder构造notification对象
                notification = new NotificationCompat.Builder(context)
                        .setContentTitle("通知栏标题1")
                        .setContentText("这是消息通过通知栏的内容1")
                        .setWhen(System.currentTimeMillis())
                        .setSmallIcon(R.drawable.ic_launcher_background)
                        .setColor(Color.parseColor("#FEDA26"))
                        .setLargeIcon(BitmapFactory.decodeResource(context.getResources(),R.mipmap.ic_launcher))
                        .setTicker("巴士门1")
                        .build();
    
            }
       notification.flags=Notification.FLAG_AUTO_CANCEL;//取消通知栏
            Intent intent=new Intent(context,MainActivity.class);
            intent.putExtra("message",":"+sdf.format(new Date()));
            //用当前时间充当通知的id,这里是为了区分不同的通知,如果是同一个id,前者就会被后者覆盖
            int requestId=(int) new Date().getTime();
            //第一个参数连接上下文的context
            // 第二个参数是对PendingIntent的描述,请求值不同Intent就不同
            // 第三个参数是一个Intent对象,包含跳转目标
            // 第四个参数有4种状态
            PendingIntent pendingIntent=PendingIntent.getActivity(context,requestId,intent,PendingIntent.FLAG_UPDATE_CURRENT);
    //        builder.setContentIntent(pendingIntent);
    
            notification.contentIntent=pendingIntent;
            //发送通知
            int  notifiId=1;
            //创建一个通知管理器
            NotificationManager   notificationManager= (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
            if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){
                notificationManager.createNotificationChannel(channel);
            }
            notificationManager.notify(notifiId,notification);
        }
    }
    
    

    调用的时候,只需要:NotificationHelper.show(this);
    原地址:https://blog.csdn.net/zheglei/article/details/79869689#commentBox,在他的基础上,添加了一个跳转事件

    创建多个图标及图标对应的事件跳转:

    public class NotificationHelper {
    
        private static final String CHANNEL_ID="channel_id";   //通道渠道id
        public static final String  CHANEL_NAME="chanel_name"; //通道渠道名称
        private static SimpleDateFormat sdf=new SimpleDateFormat("HH:mm:ss");
        private static int  notifiId=1;
    
    
        @TargetApi(Build.VERSION_CODES.O)
        public static  void  show(Context context){
            NotificationChannel channel = null;
            if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){
                //创建 通知通道  channelid和channelname是必须的(自己命名就好)
                channel = new NotificationChannel(CHANNEL_ID, CHANEL_NAME, NotificationManager.IMPORTANCE_DEFAULT);
                channel.enableLights(true);//是否在桌面icon右上角展示小红点
                channel.setLightColor(Color.GREEN);//小红点颜色
                channel.setShowBadge(false); //是否在久按桌面图标时显示此渠道的通知
            }
            Notification notification;
            //获取Notification实例   获取Notification实例有很多方法处理    在此我只展示通用的方法(虽然这种方式是属于api16以上,但是已经可以了,毕竟16以下的Android机很少了,如果非要全面兼容可以用)
            if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){
                //向上兼容 用Notification.Builder构造notification对象
    
                RemoteViews remoteView = new RemoteViews(getPackageName(), R.layout.item_notification);
                Intent intent0 = new Intent(context, ScanRubbishActivity.class);//垃圾清理
    
                Intent intent1 = new Intent(context, MusicDetailActivity.class);//文件管理
                intent1.putExtra("type","1");
                intent1.putExtra("title","文件管理");
    
                Intent intent2 = new Intent(context, MusicDetailActivity.class);//安装包管理/app管理
                intent2.putExtra("type","2");
                intent2.putExtra("title","安装包");
    
                Intent intent3 = new Intent(context, MusicDetailActivity.class);//微信专清
                intent3.putExtra("type","3");
                intent3.putExtra("title","其他");
    
    //            int requestId=(int) new Date().getTime();
    //				0、1、2是为了防止Intent一样,造成获取不了不一样的pendingIntent,pengdingIntent不一样就可以
    //				设置不一样的跳转事件;
                int requestId=1;
                PendingIntent pendingIntentClear=PendingIntent.getActivity(context,requestId,
                        intent0,PendingIntent.FLAG_UPDATE_CURRENT);
                PendingIntent pendingIntentFile=PendingIntent.getActivity(context,0,
                        intent1,PendingIntent.FLAG_UPDATE_CURRENT);
                PendingIntent pendingIntentApp=PendingIntent.getActivity(context,1,
                        intent2,PendingIntent.FLAG_UPDATE_CURRENT);
                PendingIntent pendingIntentWchat=PendingIntent.getActivity(context,2,
                        intent3,PendingIntent.FLAG_UPDATE_CURRENT);
    
    //            remoteView.setImageViewResource(R.id.notifi_ic_img_clear,R.drawable.icon_clean_normal);
    //            remoteView.setImageViewResource(R.id.notifi_ic_img_file,R.drawable.fun_fiction);
    //            remoteView.setTextColor(R.id.re_text, Color.RED);
    //            remoteView.setTextViewText(R.id.re_text, "remote view demo");
    //            remoteView.setImageViewResource(R.id.re_image, R.drawable.btn_me_share);
                remoteView.setOnClickPendingIntent(R.id.notifi_ic_img_clear, pendingIntentClear);
    
                remoteView.setOnClickPendingIntent(R.id.notifi_ic_img_file,pendingIntentFile);
    
                remoteView.setOnClickPendingIntent(R.id.notifi_ic_img_app, pendingIntentApp);
    
                remoteView.setOnClickPendingIntent(R.id.notifi_ic_img_wchat, pendingIntentWchat);
    
                notification = new Notification.Builder(context,CHANNEL_ID)
                        .setCustomContentView(remoteView)
    //                    .setContentTitle("通知栏标题1")
    //                    .setContentText("这是消息通过通知栏的内容1")
    //                    .setWhen(System.currentTimeMillis())
                        .setSmallIcon(R.drawable.ic_launcher_background)
    //                    .setColor(Color.parseColor("#FEDA26"))
    //                    .setLargeIcon(BitmapFactory.decodeResource(context.getResources(),R.mipmap.ic_launcher))
    //                    .setTicker("巴士门1")
    //                    .setContentIntent(pendingIntentClear)
                        .build();
    
    
                Log.d("-------", "show: ");
            }else {
                //向下兼容 用NotificationCompat.Builder构造notification对象
                notification = new NotificationCompat.Builder(context)
                        .setContentTitle("通知栏标题1")
                        .setContentText("这是消息通过通知栏的内容1")
                        .setWhen(System.currentTimeMillis())
                        .setSmallIcon(R.drawable.ic_launcher_background)
                        .setColor(Color.parseColor("#FEDA26"))
                        .setLargeIcon(BitmapFactory.decodeResource(context.getResources(),R.mipmap.ic_launcher))
                        .setTicker("巴士门1")
                        .build();
    
            }
    
    //        Intent intent=new Intent(context,MainActivity.class);
    //        intent.putExtra("message",":"+sdf.format(new Date()));
    //        //用当前时间充当通知的id,这里是为了区分不同的通知,如果是同一个id,前者就会被后者覆盖
    //        int requestId=(int) new Date().getTime();
    //        //第一个参数连接上下文的context
    //        // 第二个参数是对PendingIntent的描述,请求值不同Intent就不同
    //        // 第三个参数是一个Intent对象,包含跳转目标
    //        // 第四个参数有4种状态
    //        PendingIntent pendingIntent=PendingIntent.getActivity(context,requestId,
    //                intent,PendingIntent.FLAG_UPDATE_CURRENT);
            builder.setContentIntent(pendingIntent);
    
    //        notification.contentIntent=pendingIntent;
            //发送通知
            //创建一个通知管理器
            NotificationManager   notificationManager= (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);//常驻通知栏
            if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){
                notificationManager.createNotificationChannel(channel);
            }
            notificationManager.notify(1,notification);
        }
    
        public static boolean checkNotifySetting(Context context) {
            NotificationManagerCompat manager = NotificationManagerCompat.from(context);
            // areNotificationsEnabled方法的有效性官方只最低支持到API 19,低于19的仍可调用此方法不过只会返回true,即默认为用户已经开启了通知。
            return manager.areNotificationsEnabled();
        }
    
    }
    
    
    
    展开全文
  • Android 通知栏点击取消

    千次阅读 2015-11-12 14:54:46
    看了很多文章写了怎么取消通知栏的,自己试了就是取消不掉。后来尝试之后实现了,代码写错了。 public class LoginSuccess extends Activity { @Override protected void onCreate(Bundle ...

    看了很多文章写了怎么取消通知栏的,自己试了就是取消不掉。后来尝试之后实现了,代码写错了。

    
    public class LoginSuccess  extends Activity  {
    	
    		
    	@Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.success_login);
            Toast.makeText(LoginSuccess.this, "登陆成功", 2000).show();
            NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
            NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
            builder.setContentTitle("通知栏标题 ")
            		.setContentText("通知内容")
    //        		.setContentIntent(getDefalutIntent(Notification.FLAG_AUTO_CANCEL))//点击意图
            		.setTicker("通知首次出现在通知栏,带上升动画效果的")
            		.setWhen(System.currentTimeMillis())//通知产生的时间,会在通知信息里显示,一般是系统获取到的时间 
            		.setPriority(Notification.PRIORITY_DEFAULT)
            		.setAutoCancel(true)//用户点击就自动消失
            		.setOngoing(true)//ture,设置他为一个正在进行的通知。他们通常是用来表示一个后台任务,用户积极参与(如播放音乐)或以某种方式正在等待,因此占用设备(如一个文件下载,同步操作,主动网络连接)
            		.setDefaults(Notification.DEFAULT_VIBRATE)//向通知添加声音、闪灯和振动效果的最简单、最一致的方式是使用当前的用户默认设置,使用defaults属性,可以组合  
            	    //Notification.DEFAULT_ALL  Notification.DEFAULT_SOUND 添加声音 // requires VIBRATE permission
            		.setSmallIcon(R.drawable.taobao);//设置通知小ICON  
            Notification notification = builder.build();
            notification.flags = Notification.FLAG_AUTO_CANCEL;
            notificationManager.notify(100, notification);
    //        notificationManager.cancel(100);//通知以后自动消失了
           
        }
    	
    }
    

    错误的代码是:其实已经不是一个对象了。


     Notification notification = builder.build();
     notification.flags = Notification.FLAG_AUTO_CANCEL;
     notificationManager.notify(100, builder.build());


    推荐:http://blog.csdn.net/vipzjyno1/article/details/25248021

    展开全文
  • android 通知栏跳转

    2016-09-03 23:53:19
    通知栏接受消息跳转到相应的界面的处理
  • android实现后台通知栏下载并可以取消Demo
  • 通知栏声音提示并显示,点击可跳转到需要页,并可取消通知栏信息
  • android 去掉通知栏

    千次阅读 2018-05-09 15:50:43
    推荐方法:在自定义的styles中设置隐藏状态和标题的theme,并在AndroidManifest.xml文件中的application或某个activity中设置。styles文件如下[html] view plain copy<resources> <!--...

    推荐方法:在自定义的styles中设置隐藏状态栏和标题栏的theme,并在AndroidManifest.xml文件中的application或某个activity中设置。

    styles文件如下

    [html]  view plain  copy
    1. <resources>  
    2.   
    3.     <!-- Base application theme. -->  
    4.     <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">  
    5.         <!-- Customize your theme here. -->  
    6.         <item name="colorPrimary">@color/colorPrimary</item>  
    7.         <item name="colorPrimaryDark">@color/colorPrimaryDark</item>  
    8.         <item name="colorAccent">@color/colorAccent</item>  
    9.     </style>  
    10.   
    11.     <style name="AppTheme.NoBar">  
    12.         <item name="windowNoTitle">true</item>  
    13.         <item name="android:windowFullscreen">true</item>  
    14.     </style>  
    15.   
    16. </resources>  
    AndroidManifest.xml文件如下:

    [html]  view plain  copy
    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
    3.     package="com.jianchi.fsp.myapplication">  
    4.   
    5.     <application  
    6.         android:allowBackup="true"  
    7.         android:icon="@mipmap/ic_launcher"  
    8.         android:label="@string/app_name"  
    9.         android:supportsRtl="true"  
    10.         android:theme="@style/AppTheme">  
    11.         <activity android:name=".MainActivity" android:theme="@style/AppTheme.NoBar">  
    12.             <intent-filter>  
    13.                 <action android:name="android.intent.action.MAIN" />  
    14.                 <category android:name="android.intent.category.LAUNCHER" />  
    15.             </intent-filter>  
    16.         </activity>  
    17.     </application>  
    18.   
    19. </manifest>  
    展开全文
  • Android通知栏消息、点亮屏幕、震动、声音、显示样式的小例子。
  • Android 实现点击清理通知而不清理通知栏的通知解决办法 NotificationCompat.Builder builder=new NotificationCompat.Builder(appContext, CHANNEL_ID) .setSmallIcon(appContext.getApplicationInfo().icon) ...
    Android 实现点击清理通知而不清理通知栏的通知解决办法
    
    NotificationCompat.Builder builder=new NotificationCompat.Builder(appContext, CHANNEL_ID)
                    .setSmallIcon(appContext.getApplicationInfo().icon)
                    .setContentTitle(title)
                    .setTicker(content)
                    .setContentText(content)
    //                .setOngoing(true)//通知不会被清除通知所清理
                    .setWhen(System.currentTimeMillis())
                    .setAutoCancel(true)
                    .setContentIntent(pendingIntent);

    设置setOngoing(true)即可

    展开全文
  • 极光推送和通知栏

    千次阅读 2016-11-02 10:51:06
    --Required 用户接收SDK通知栏信息的intent--> < action android:name = "cn.jpush.android.intent.NOTIFICATION_OPENED" /> <!--Required 用户打开自定义通知栏的intent--> < category android:name =...
  • 多个闹钟的添加与取消并弹出通知栏提醒
  • 现在好多app都可以修改手机顶部那一细条的通知栏的背景颜色和自己app的主题颜色一致,这个功能是怎么实现的,求解释或者分享下解释的网址,谢谢哈!
  • 常驻通知栏

    千次阅读 2019-08-13 13:06:45
    常驻通知栏 设置一个默认通知栏 不废话,上代码 //创建一个通知管理器 NotificationManager notificationManager= (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); // 获取Notification...
  • 安卓通知栏实现

    2015-08-26 10:51:33
    安卓通知栏实现,通过 NotificationManager实现管理 notification ,包括 发送通知和 取消通知
  • 出现的原因是你app里使用了  ...不开启这个服务的话,状态就不会出现“xxx正在运行”的通知了。如果此服务还有其他用处不能关闭,那就没办法了   来源: https://bbs.csdn.net/topics/392401256
  • 极光推送中自定义通知栏的弹出框

    千次阅读 2017-06-22 16:11:30
    目前没有找到,但是我看到有一个是自定义通知栏布局的方法,希望对当我遇到问题一样的人,有所帮助 代码如下 //自定义通知栏样式3 // 指定定制的 Notification Layout CustomPushNotificationBuilder builder3 = ...
  • Android从服务端下载文件,布局中有三个按钮,分别是“开始下载”“暂停下载”和“取消下载”。...并且项目使用了OkHttp,通过设置下载监听类(DownLinstener)能将下载进度实时显示在系统通知栏里。
  • Android更新带进度条的通知栏

    千次下载 热门讨论 2015-08-06 15:24:18
    详情:http://blog.csdn.net/onceing/article/details/47317189,如果你觉得不错希望给个评价,谢谢
  • 对于通知栏的使用,Android各个版本其实都有比较大的调整。例如老版本的不兼容,大小图标问题以及自定义通知栏适配问题,这些都是比较头大的事,当然弄懂了就清楚了,本篇就处理下这些疑惑。 通知栏的使用 显示一个...
  • 应用启动后显示常驻通知栏。声音 和 震动这块设置都是默认的,也可以说就没有重新设置这块。默认就是常驻通知栏显示时是震动,是响铃,还是静音,都是跟系统设置来的。 这样运行了一段时间,没有太大问题。忽然有一...
  • 消息通知栏demo

    2014-12-22 23:04:47
    以下为程序启动流程: 1.开机启动AlarmService 2.AlarmActivity一秒后发送一条系统广播 ...5.单击消息,取消通知栏信息 6.但程序关闭时,单击消息,重启程序 小知识:BroadCast、Service、Notification,初学者适用
  • private void sendCustomNotification (){ final Notification.Builder builder = getNotificationBuilder() ; ...RemoteViews remoteViews = ...RemoteViews... 取消id为3的通知 getManager().cancel( 3 ) ;
  • Android 消息通知栏用法详解(一)

    千次阅读 2020-04-02 21:36:59
    通知(Notification) 是Android 系统比较有特色的一个功能,当某个应用程序希望向用户发出一些提示信息的时,而该应用程序又处于后台,就可以借助通知来实现。比如微信弹窗。通过这篇文章,我们将学习到 ...
  • Android自定义通知栏显示

    千次阅读 2018-03-09 15:13:37
    本文主要想说一下android项目开发中经常会使用到通知机制中的通知栏框架(Notificaiton)。通知栏位于设备的顶层,可以展开的通知列表。通知栏的主要作用大概可以分为三大块: 显示未读的消息(短信消息、QQ、微信...
  • .setAutoCancel(false)//设置通知被点击一次是否自动取消 .setContentText(getStrings(R.string.download_progress) + "0%") .setProgress(100, 0, false); } /** * 方法描述:createThread方法, 开线程下载 ...
  • Android中显示消息通知栏

    千次阅读 2019-06-11 16:13:11
    参考网址:https://blog.csdn.net/qq_35749683/article/details/80451791 https://blog.csdn.net/u011286777/article/details/53319535 /** * 消息通知栏 * @param context * 上下文 * @param cl...
  • Android 音乐播放器的通知栏

    千次阅读 2017-10-05 11:52:03
    Android音乐播放器的通知栏效果说明 我点击×按钮会关闭通知栏和应用, 点击停止按钮会在界面显示停止并且这个按钮的图片换成播放图片,再点击一次界面显示播放,且图片换回来 点击上一首和下一首按钮会在界面上...
  • Android实现后台通知栏下载并可以取消的Demo
  • 公司产品课程音频播放播放的需求,其中有一个通知栏呈现市场上网易云和QQ类似功能,可以显示对应内容和音乐播放状态切换,并且其中有一个防假学功能,对应在某个点对应提示有试题作答,并隐藏通知栏视图。...
  • Android 通知栏Notification 悬浮通知栏

    千次阅读 2018-12-27 21:59:17
    NotificationManager mNotificationManager = ... builder.setContentTitle("悬挂式通知"); builder.setFullScreenIntent(pendingIntent, true); mNotificationManager.notify(2, builder.build());  亲测可用
  • android清除通知栏消息

    万次阅读 2012-01-10 11:10:58
    这近项目快到结尾了,经理要我处理一个问题,就是我们程序关闭后,程序发出通知 在状态上始终没有消除,需要手动的清楚, 体验效果极其不好,现在是想在程序推出后,把通知给消除了,琢磨了下,不知怎么清楚,看...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,233
精华内容 12,893
关键字:

如何取消通知栏