zoukankan      html  css  js  c++  java
  • Notify通知

    1、NotificationManager类对象

            <1>getSystemService(Context.NOTIFICATION_SERVICE) 获取通知管理对象
            <2>notify(int id, Notification notification)
                    //定义通知管理对象
    1. NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
                    //定义通知构造器对象
    1. NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
    2.                         .setSmallIcon(R.drawable.ic_launcher)
    3.                         .setContentTitle("标题")
    4.                         .setContentText("文本")
    5.                         .setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE); 
                    (1)普通的通知
    1. Intent intent1 = new Intent(this,SecondActivity.class); //设置点击通知时打开的窗口
    2.             //定义延迟执行Intent的对象
    3.             PendingIntent pIntent = PendingIntent.getActivity(this, 1, intent1, PendingIntent.FLAG_ONE_SHOT);                      //FLAG_ONE_SHOT:通知仅执行一次
    4.            builder.setContentIntent(pIntent);
    5.             manager.notify(0,builder.build());
                    (2)取消所有通知
    1. manager.cancelAll();
                    (3) 带进度条的通知
    1. final NotificationCompat.Builder progressBuilder = new NotificationCompat.Builder(this);
    2. progressBuilder.setSmallIcon(R.drawable.ic_launcher)
    3. .setContentTitle("Title")
    4. .setContentText("听说宋丹丹要上马年春晚");
    5. new Thread(new Runnable() {
    6. @Override
    7. public void run() {
    8. int i;
    9. for(i = 0;i <= 100;i+= 5){
    10. //第一个参数: 进度条的最大值,第二个参数:当前进度,第三个参数:是否为不确定性进度
    11. progressBuilder.setProgress(100, i, false);
    12. manager.notify(3, progressBuilder.build());
    13. try {
    14. Thread.sleep(500); //每隔0.5秒发送一次通知
    15. } catch (InterruptedException e) {
    16. // TODO Auto-generated catch block
    17. e.printStackTrace();
    18. }
    19. }
    20. progressBuilder.setContentText("下载完毕!");
    21. manager.notify(3, progressBuilder.build());
    22. }
    23. }).start();
    2、NotificationCompat.Builder 通知的构造类
            <1>普通通知
                    (1)setSmallIcon(R.drawable.ic_launcher) 设置通知的小图标
                    (2)setContentTitle("标题")
                    (3)setContentText("文本内容")
                    (4)setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE) 设置通知提示
                    (5)setContentIntent(PendingIntent) 设置通知被点击后的意图
                    (6)Notification build() 生成通知对象
                    (7).setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.qq))
            <2>大视图通知
                    (1)setStyle(NotificationCompat.Style) 设置大视图样式   
                                setBigContentTitle("大视图标题")
                                setSummaryText("大视图的说明")
                    (2)NotificationCompat.InboxStyle 包含一个列表控件
                                addLine("message1")
                    (3)NotificationCompat.BigTextStyle 包含一个大的文本控件
                               bigText("big text")
                    (4)NotificationCompat.BigPictureStyle 包含一个在的图片控件
                                bigPicture(BitmapFactory.decodeResource(getResources(), R.drawable.qq))
            <3>带进度的通知
                    (1)setProgress(int max, int progress, boolean indeterminate) 设置当前进度,第三个参数:是否为不确定进度条
            <4>自定义通知
                    (1)setContent(RemoteViews) 设置自定义的通知内容
                    (2)RemoteViews(String packageName, int layoutId) 加载一个指定应用下的布局资源文件
                    (3)setTextViewText(int viewId, "内容")  设置指定TextView控件的内容
                    (4)setImageViewBitmap(int viewId,Bitmap) 设置ImageView控件显示的图片
                    (5)setImageViewResource(int viewId,int resid) 设置ImageView控件显示的图片资源       
  • 相关阅读:
    【SDOI2015】星际战争
    【雅礼联考DAY02】Magic
    【SDOI2015】排序
    【雅礼联考DAY01】逃跑
    【雅礼联考DAY01】数列
    【雅礼联考DAY02】Revolution
    Philips and Calculator
    maven整理——初步
    等价类划分方法分析与应用
    @Autowired
  • 原文地址:https://www.cnblogs.com/android-blogs/p/5706519.html
Copyright © 2011-2022 走看看