Notification及桌面小部件的应用(RemoteViews)

原创 2017年01月03日 21:52:08

最后说一下NotificationManager类的常用方法:

             通过获取系统服务来获取该对象:           

                NotificationManager mNotificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE) ;

      NotificationManager常用方法介绍:

               public  void cancelAll()                                                          移除所有通知 (只是针对当前Context下的Notification)

               public  void cancel(int id)                                                      移除标记为id的通知 (只是针对当前Context下的所有Notification)

               public  void notify(String tag ,int id, Notification notification) 将通知加入状态栏, 标签为tag,标记为id

               public  void notify(int id, Notification notification)                   将通知加入状态栏,,标记为id


可以使用自定义样式和系统默认样式。

默认样式的使用:

1.用Notification的内部类Builder的set方法去设置默认界面的text和image等,还可以设置通知的pendingIntent用于点击通知时启动指定的Activity。

2.使用getSystemService(Context.NOTIFICATION_SERVICE);得到NotificationManager。

3.调用NotificationManager.notify(String tag, int id, Notification notification)。id是本APP中唯一的,tag可以不是唯一的。这样就可以发送一个通知了。


使用自定义样式:

1.首先需要新建一个RemoteViews view = new RemoteView(getPackageName(),int layoutId);  notification.contentView = view;

2.view.setTextView (int textViewId, String text);  view.setImageVIewResource(int viewId, int imageResourceId);

3.设置PendingIntent:notification.contentIntent = pendingIntent;设置点击通知触发的PendingIntent

4.为remotesView中的view设置PendingIntent。就是点击某个view触发的pendingIntent。

    remoteViews.setOnClickPendingIntent(int viewId, PendingIntent intent);

5.notificationManager.notify(String tag, int id, Notification notification)。

6.更新remoteView的内容,不能直接获取layout中的view然后去设置新的内容。只能在把layout弄进remoteView中后,再使用remoteViews.setTextVIewText()。remoteViews.setImageViewResources()去改动。


对于Service,有另外一种发通知的方法,就是Service..startForeground(int id, Notification notification)。用这种方式启动的话,调用Service.stopForeground() 的时候会自动取消掉这个通知。






音乐模块activity及布局

ScanResultActivity→ScanActivity→MusicCenterActivity。 MusicCenterActivity的主要页面是一个Frament(MainLocalFra...

Handler、Looper、MessageQueue

1.每个线程都可以拥有一个消息队列,一个Looper,可以拥有多个handler 2.主线程:在系统创建该线程时就为该线程创建了MessageQueue和Looper。 3.如果子线程需要Messag...

Android桌面小部件与RemoteViews

Android桌面小部件与RemoteViews标签(空格分隔): Android一、简介  App Widget是应用程序窗口小部件(Widget)是微型的应用程序视图,它可以被嵌入到其它应用程序中...
  • woodgp
  • woodgp
  • 2016年11月19日 00:11
  • 185

RemoteViews在桌面小部件和通知栏的使用

(《Android开发艺术探索》读书笔记)什么是RemoteViews: 它所表示的是一个View结构,可以在其他进程中显示,也就是可以跨进程更新它的界面。 RemoteViews的应用场...

Android 如何预置桌面上的应用程序图标、快捷方式图标或者窗口小部件?

前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net       ...
  • luckkof
  • luckkof
  • 2014年03月19日 09:47
  • 2372

Android-Widget桌面应用小部件

官方文档中国版: https://developer.android.google.cn/guide/index.html?q=widget 这个网站是谷歌2016年底为中国开发者提供中国版,方便访...

通过remoteViews自定义Notification通知栏的布局

remoteViews,是一种远程view,通过跨进程更新自己的界面,主要用于通知栏和桌面小部件的开发过程中。1、自定义Notification布局public class MainActivity ...
  • AsiaLYF
  • AsiaLYF
  • 2016年11月10日 19:24
  • 615

Android之利用RemoteViews自定义Notification

转载请注明出处:这是对别人劳动成果的尊重。 一、概述 RemoteViews从字面上看是一种远程视图。RemoteViews具有View的结构,既然是远程View,那么它就可以在其他进程中显示。由...

Android 通知栏Notification,NotificationManager,RemoteViews使用流程,自定义通知栏样式简介

工作内容: 1.通知栏制作全过程(含多个PendingIntent,即:可跳转到多个activity) 2.可产生isChecked的组件ToggleButton可添加setOnCheckedChan...

Android的桌面组件App Widget的使用方法 AppWidgetProvider RemoteViews

What is App Widget? 在手机桌面上放置的控件,即Android的桌面组件 AppWidgetProviderInfo public class AppWidget...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Notification及桌面小部件的应用(RemoteViews)
举报原因:
原因补充:

(最多只允许输入30个字)