手记

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控件显示的图片资源                

原文链接:http://www.apkbus.com/blog-815579-61219.html

0人推荐
随时随地看视频
慕课网APP