在Android应用开发中,经常会使用到状态栏通知(Status Notification),例如新浪微博、网易新闻等提供的推送消息,软件后台更新时进度的显示等等,如下图所示:
看了网上很多关于Notification的博客文章,发现几乎没有一个能将自定义状态栏通知完全实现正确的,因此,本文就来说说实现自定义状态栏通知经常被忽略的一些知识点。
1) 使用Notification最常见的场景
运行在后台的Service当需要和用户交互时,由于它不能直接启动一个Activity,因此,Service必须使用Notification来间接的启动Activity(当用户点击Notification时跳转)。
2) 自定义布局文件支持的控件类型
Notification
的自定义布局是RemoteViews,因此,它仅支持FrameLayout、LinearLayout、RelativeLayout三种布局控件,
同时支持AnalogClock、Chronometer、Button、ImageButton、ImageView、ProgressBar、
TextView、ViewFlipper、ListView、GridView、StackView和AdapterViewFlipper这些UI控
件。对于其他不支持的控件,使用时将会抛出ClassNotFoundException异常。
3) Notification