Android 开发艺术探索笔记(12),android开发教程百度网盘
效果如下所示:
上面是普通的通知栏,下面则是自定义的RemoteView。
创建比较简单,只需提供包名
和资源ID就能创建一个RemoteView。而更新RemoteView则要通过RemoteView的一系列方法比如setTextViewText,里面通过资源id来设置想要显示的内容。如果要给控件添加单击事件则要使用PendingIntent 并通过setOnClickPendingIntent来实现。最后通过Notification的contentView来布局RemoteView。
RemoteView在桌面小窗口上的应用
就是在小窗口的AppWidgetProvider中的方法去更新RemoteView。
当广播到来以后,小窗口会根据Action来通过onReceive来分发广播。
onReceive可以分发到onEnable(第一次创建时调用)、onUpdate(更新时调用)、onDelete(删除时调用)、onDisable(最后一个该类型小窗口删除时调用)。都可以操作RemoteView。
PendingIntent的描述
PendingIntent表示一种处于pending状态的意图。就是表示接下来有一个intent(意图)在某个时候发生。PendingIntent的适用场景是给RemoteView添加点击事件,因为RemoteView不能直接像View那样更改UI,所以我们必须要设置PendingIntent,PendingIntent通过send和cancel方法来发送和取消特定的Intent。
Pending有三种待定意图:启动Activity(未加载时候的意图)、启动服务、发送广播,对应三个接口:
方法参数中第一个和第三个好理解,第二个requestCode为请求码,一般设为0即可。首先要了解两个PendingIntent什么时候是相同的:就是他们的requestCode和Intent都相同,则这两个是相同的。而Intent什么时候是相同的:当他们CompentName和intent-filter相同,就算Extras不同(Extras不参与匹配过程)则两个Intent相同。接下来通过这些匹配规则来了解第四个参数flags:
(1)FLAG_ONE\
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享
_SHOT
当前描述的PendingIntent只能使用一次,然后它就会被自动cancel,如果后续还有相同PendingIntent则它们的send方法就会失效。即同类的通知只能使用一次后续的通知单击后无法打开。
(2)FLAG_NO_CREATE
当前描述的PendingIntent不会主动创建,如果当前PendingIntent不存在,则getActivity、getService、getBroadcast都会返回null。日常开发基本用不到
(3)FLAG_CANCEL_CURRENT
当前描述的PendingIntent如果已经存在,那么它就会被cancel,然后系统就会新创建一个PendingIntent,对于通知栏来说,那些已经cancel的通知被单击后无法打开。
(4)FLAG_UPDATE_CURRENT
当前的PendingIntent如果已存在,那么它将被更新。即它们Intent中的Extras会被替换成最新的。
Android 开发艺术探索笔记(12),android开发教程百度网盘相关推荐
- Android 开发艺术探索——第十章 Android的消息机制
Android 开发艺术探索--第十章 Android的消息机制读书笔记 Handler并不是专门用于更新UI的,只是常被用来更新UI 概述 Android的消息机制主要值得就是Handler的运行机 ...
- 计算机一级笔记百度云盘,自带笔记功能搜索强化!百度网盘10.0新版体验
[PConline应用]近日,百度网盘手机客户端更新到了10.0版本,新版给用户带来了全新的操作界面还有一个比较实用的新功能,一起来看看吧. 简约新界面 自带夜间模式 新版百度网盘手机客户端采用了全新 ...
- Android开发艺术探索笔记
<Android开发艺术探索>这本书在几年前就已经买了,陆陆续续看过几次,都没有看完,没有理解透. 最近重读<Android开发艺术探索>,读了两次,第一次读完感觉还有大量的知 ...
- Android开发艺术探索笔记(一) Activity的生命周期和启动模式(1)
Activity作为Android开发中最常用的一个组件,是Android开发人员必须熟悉且掌握的重要内容.同时Activity也是在面试中经常被问到的一个方向.因此,掌握Activity的重要性也不 ...
- 百度 android 下载文件夹在哪里,手机上从百度网盘下载下来的东西在哪个文件夹里?...
手机上从百度网盘下载下来的东西在哪个文件夹里?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 手机上从百度网盘下载下来的 ...
- ViewRoot,DecorView,MeasureSpec和View的工作原理——Android开发艺术探索笔记
原文链接 http://sparkyuan.me/ 转载请注明出处 View的绘制流程是从ViewRoot的performTraversals方法開始的.它经过measure.layout和draw三 ...
- Android 开发艺术探索笔记(17),android开发艺术探索
垃圾回收的相关工作,比如清楚数据 调用onDeatchFromWindow方法,在这个方法里结束进程.终止动画等 通过Session的remove方法删除Winodow,最终会调用WindowMana ...
- Android 开发艺术探索笔记(21),阿里P7级别面试经验总结
Looper的工作原理 就是Looper一直查看MessageQueue中是否有新消息,没有就一直阻塞,否则取出新消息. 在它的构造方法中它会先创建一个MessageQueue,然后将当前线程的对象保 ...
- python项目开发实战网盘-《Python项目案例开发从入门到实战》PDF版百度网盘
「教程分享:Python项目开发从入门到实列」 本书例子具有实用性,20个不同类型的完整列子,600分钟高品质配套教学视频,完整的源码和教学课件,让你对枯燥的Python语言学习充满乐趣. 编辑推荐 ...
- python项目开发实例-《Python项目案例开发从入门到实战》PDF版百度网盘
「教程分享:Python项目开发从入门到实列」 本书例子具有实用性,20个不同类型的完整列子,600分钟高品质配套教学视频,完整的源码和教学课件,让你对枯燥的Python语言学习充满乐趣. 编辑推荐 ...
最新文章
- 一种在MVC3框架里面设置模板页的方法,不使用_ViewStart
- mysql5.7.21源码安装
- 【Linux系统编程】互斥锁
- docker利用Dockerfile来制作镜像
- 图像处理-图像增强(三)
- 【Zookeeper】查看ZK连接总数
- php 正则表达式 文档,php的正则表达式完全手册
- 学习笔记(03):MySQL数据库运维与管理-01-mysql通用日志与错误日志
- fedora下安装python
- GD2拖动验证码Thinkphp版
- linux chmod 使用方法,linux中chmod命令的使用方法
- 服装CAD软件测试初学者,CAD服装打版基础教程
- android 拍照和选择相册图片剪切
- 编译原理课程设计c语言,编译原理课程设计心得体会
- java 实现扑克牌洗牌功能
- 手游服务器开发技术详解
- java Android 生成6位随机数字
- 51单片机实现万年历
- 《C语言程序设计》江宝钏主编-习题5-3-动态最大值!!!
- JZOJ 6276.树【扫描线】【线段树】