Notification的总结

来源:互联网 发布:唯一旅拍怎么样知乎 编辑:程序博客网 时间:2024/06/05 19:44

Notification的概要

  作为一个Android的设计者,他为什么要将Notification作为Android的一部分?因为他要解决这些问题:

  • 提示。当用户在某个应用内时,如果来了一条短消息或者别的提示,用户不用退出应用,直接下拉状态栏就可以进行操作了。
  • 标示。告诉用户正在进行某些操作,如下载等。
  • 方便用户操作。用户不用一级一级地进入应用就能访问到应用的深层数据。

  这三点是Notification之所以存在的原因,也是Notification需要满足的需求,有了这三个纲领,学习Notification就好学了。

  首先是提示,既然要提示用户,那自然就要有提示的内容,这些内容的设置可以通过Notification.Builder来设置,方法用setContentTitle()setDefault()等。

  然后是标示。标示就是告诉用户现在正在进行什么,如正在进行下砸就更新下载进度条。我们自己的应用和状态栏自然是不同的进程,要控制不同进程view,那就要用到RemoteViews了。使用RemoteViews,我们可以自定义Notification的布局,并且通过RemoteViews提供的方法,可以动态改变Notification的视图,比如说刷新进度条。

  最后就是方便用户操作了。要使用户跳转到深层界面,使用PendingIntent就很好做到。PendingIntent就相当于将Context和Intent封装在一起了,等到条件合适时就会触发,这样当我们点击Notification时就会跳到指定界面。

  但是跳到指定界面a分两种情况,一种是跳到a界面后按返回键,就回到桌面;另一种是跳到a界面后按返回键,就回到a的上层界面b。对于第一种情况,直接使用最单纯的PendingIntent就好。而对于第二种情况,可以调用PendingIntent的getActivities(Context context, int requestCode, Intent[] intents, int flags)方法,其中intents参数的第一个intent需要有Intent的makeRestartActivityTask(ComponentName mainActivity)方法来生成,这样就会有一个以mainActivity为根的栈重新生成。

  这就是我总结的Notification的概要,纲举才能目张,抓住这三点,就能更好地理解和使用Notification了。

0 0
原创粉丝点击