Android通知栏,setLatestEventInfo方法过时问题
2017-05-05 19:21
309 查看
1.显示一个普通的通知
/** * 显示一个普通的通知 * * @param context 上下文 */ public static void showNotification(Context context) { Notification notification = new NotificationCompat.Builder(context) /**设置通知左边的大图标**/ .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher)) /**设置通知右边的小图标**/ .setSmallIcon(R.mipmap.ic_launcher) /**通知首次出现在通知栏,带上升动画效果的**/ .setTicker("通知来了") /**设置通知的标题**/ .setContentTitle("这是一个通知的标题") /**设置通知的内容**/ .setContentText("这是一个通知的内容这是一个通知的内容") /**通知产生的时间,会在通知信息里显示**/ .setWhen(System.currentTimeMillis()) /**设置该通知优先级**/ .setPriority(Notification.PRIORITY_DEFAULT) /**设置这个标志当用户单击面板就可以让通知将自动取消**/ .setAutoCancel(true) /**设置他为一个正在进行的通知。他们通常是用来表示一个后台任务,用户积极参与(如播放音乐)或以某种方式正在等待,因此占用设备(如一个文件下载,同步操作,主动网络连接)**/ .setOngoing(false) /**向通知添加声音、闪灯和振动效果的最简单、最一致的方式是使用当前的用户默认设置,使用defaults属性,可以组合:**/ .setDefaults(Notification.DEFAULT_VIBRATE | Notification.DEFAULT_SOUND) .setContentIntent(PendingIntent.getActivity(context, 1, new Intent(context, MainActivity.class), PendingIntent.FLAG_CANCEL_CURRENT)) .build(); NotificationManager notificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE); /**发起通知**/ notificationManager.notify(0, notification); }
2.显示一个下载带进度条的通知
/** * 显示一个下载带进度条的通知 * * @param context 上下文 */ p 4000 ublic static void showNotificationProgress(Context context) { //进度条通知 final NotificationCompat.Builder builderProgress = new NotificationCompat.Builder(context); builderProgress.setContentTitle("下载中"); builderProgress.setSmallIcon(R.mipmap.ic_launcher); builderProgress.setTicker("进度条通知"); builderProgress.setProgress(100, 0, false); final Notification notification = builderProgress.build(); final NotificationManager notificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE); //发送一个通知 notificationManager.notify(2, notification); /**创建一个计时器,模拟下载进度**/ Timer timer = new Timer(); timer.schedule(new TimerTask() { int progress = 0; @Override public void run() { Log.i("progress", progress + ""); while (progress <= 100) { progress++; try { Thread.sleep(100); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } //更新进度条 builderProgress.setProgress(100, progress, false); //再次通知 notificationManager.notify(2, builderProgress.build()); } //计时器退出 this.cancel(); //进度条退出 notificationManager.cancel(2); return;//结束方法 } }, 0); }
3.显示一个悬挂式的通知
/** * 悬挂式,部分系统厂商不支持 * * @param context */ public static void showFullScreen(Context context) { NotificationCompat.Builder builder = new NotificationCompat.Builder(context); Intent mIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://blog.csdn.net/linglongxin24")); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, mIntent, 0); builder.setContentIntent(pendingIntent); builder.setSmallIcon(R.mipmap.ic_launcher); builder.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher)); builder.setAutoCancel(true); builder.setContentTitle("悬挂式通知"); //设置点击跳转 Intent hangIntent = new Intent(); hangIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); hangIntent.setClass(context, MainActivity.class); //如果描述的PendingIntent已经存在,则在产生新的Intent之前会先取消掉当前的 PendingIntent hangPendingIntent = PendingIntent.getActivity(context, 0, hangIntent, PendingIntent.FLAG_CANCEL_CURRENT); builder.setFullScreenIntent(hangPendingIntent, true); NotificationManager notificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE); notificationManager.notify(3, builder.build()); }
4.显示一个折叠式的通知
/** * 折叠式 * * @param context */ public static void shwoNotify(Context context) { //先设定RemoteViews RemoteViews view_custom = new RemoteViews(context.getPackageName(), R.layout.view_custom); //设置对应IMAGEVIEW的ID的资源图片 view_custom.setImageViewResource(R.id.custom_icon, R.mipmap.icon); view_custom.setTextViewText(R.id.tv_custom_title, "今日头条"); view_custom.setTextColor(R.id.tv_custom_title, Color.BLACK); view_custom.setTextViewText(R.id.tv_custom_content, "金州勇士官方宣布球队已经解雇了主帅马克-杰克逊,随后宣布了最后的结果。"); view_custom.setTextColor(R.id.tv_custom_content, Color.BLACK); NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context); mBuilder.setContent(view_custom) .setContentIntent(PendingIntent.getActivity(context, 4, new Intent(context, MainActivity.class), PendingIntent.FLAG_CANCEL_CURRENT)) .setWhen(System.currentTimeMillis())// 通知产生的时间,会在通知信息里显示 .setTicker("有新资讯") .setPriority(Notification.PRIORITY_HIGH)// 设置该通知优先级 .setOngoing(false)//不是正在进行的 true为正在进行 效果和.flag一样 .setSmallIcon(R.mipmap.icon); Notification notify = mBuilder.build(); NotificationManager notificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE); notificationManager.notify(4, notify); }
相关文章推荐
- Android中关于setLatestEventInfo()过时以及构建Notification的解决方法
- Android中关于setLatestEventInfo()过时以及构建Notification的解决方法
- [Android] Notification.setLatestEventInfo()方法被移除的问题
- Android中关于setLatestEventInfo()过时以及构建Notification的解决方法
- Androidn Notification的使用,解决找不到setLatestEventInfo方法
- setLatestEventInfo(),Builder.getNotification()过时,Android提供的解决方案
- 安卓状态栏通知Notification方法更新(setLatestEventInfo)
- Androidn Notification的使用,解决找不到setLatestEventInfo方法
- setLatestEventInfo(),Builder.getNotification()过时,Android提供的解决方案
- Androidn Notification的使用,解决找不到setLatestEventInfo方法
- Androidn Notification在新API中的使用(解决找不到setLatestEventInfo方法)
- Android:setLatestEventInfo问题
- Androidn Notification的使用,解决找不到setLatestEventInfo方法
- 全新的Android通知栏,已抛弃setLatestEventInfo,兼容高版本
- Android:Notification通知消息,NotificationManager,setLatestEventInfo
- Android Notification setLatestEventInfo方法已废弃
- Androidn Notification的使用,解决找不到setLatestEventInfo方法
- Android的Noticification里的setLatestEventInfo()方法的替代方法
- 安卓android_技术问题-Android下setLatestEventInfo警告、Handler警告、SimpleDateFormat警告
- setLatestEventInfo(),Builder.getNotification()过时,Android提供的解决方案