创建Widget过程

(1)分配id(用HostId请求分配WidgetId:WidgetHost.allocateAppWidgetId:由WidgetService分配一个WidgetID)

WidgetService端:Host列表+WidgetId列表

(2)绑定id(将WidgetId绑定到Provider)

WidgetManager.bindAppWidgetId:将WidgetID绑定到WidgetProvider

将WidgetID放入相应WidgetProvider的ID列表

发送Enable(第一次)+Update广播  (Service发送广播请求RemoteViews)

WidgetService.sendEnableIntent 发送Enable广播

WidgetService.sendUpdateIntent 发送Update广播(WidgetIDs)

(3)Provider发送RemoteViews(接受广播,创建RemoteViews,再发给Service)

WidgetProvider接受广播,回调onEnable,onUpdate

创建RemoteViews(每一个WidgetID创建一个)

WidgetManager.updateAppWidget 将RemoteViews发给WidgetService

(4)Service通知Host

WidgetService通过IBinder回调WidgetHost的Callbacks(updateAppWidget,providerChanged,viewDataChanged)

(5)添加到桌面(Host创建View,刷新)

WidgetHost主线程调用updateAppWidgetView

WidgetHost根据WidgetID取到WidgetHostView,再根据RemoteViews创建View添加到WidgetHostView

Widget创建过程(将RemoteViews发给WidgetHost)相关推荐

  1. Android10.0应用进程创建过程以及Zygote的fork流程-[Android取经之路]

    摘要:点击手机桌面图标,例如微信,它是如何启动的呢,让我们从系统源码级来一起分析. 阅读本文大约需要花费1小时. 文章的内容主要还是从源码进行分析,虽然又臭又长,但是如果想要学习Android系统源码 ...

  2. java初始化实例化_Java对象的创建过程:类的初始化与实例化

    一.Java对象创建时机 我们知道,一个对象在可以被使用之前必须要被正确地实例化.在Java代码中,有很多行为可以引起对象的创建,最为直观的一种就是使用new关键字来调用一个类的构造函数显式地创建对象 ...

  3. iOS 的本地化使用和创建过程

    在使用本地化语言之前,来看看本地化语言文件内容的结构(这里我以Chinese为例): "Cancel"="取消"; "OK"="确 ...

  4. python不能创建新变量_Python之变量的创建过程!

    Python之变量的创建过程 一.变量创建过程 首先,当我们定义了一个变量name = 'Kwan'的时候,在内存中其实是做了这样一件事: 程序开辟了一块内存空间,将'Kwan'存储进去,再让变量名n ...

  5. 深入浅出Spring Security(二):FilterChainProxy的创建过程

    上篇回顾 框架的核心是一个过滤器,这个过滤器名字叫springSecurityFilterChain,类型是FilterChainProxy WebSecurity和HttpSecurity都是建造者 ...

  6. OpenStack虚机网卡的创建过程

    OpenStack虚机网卡的创建过程 OpenStack最基本和常用的操作就是启动虚机.虚机启动的过程中涉及很多内容,其中非常重要的一个环节就是创建并绑定虚机的虚拟网卡.虚机的创建和管理是Nova的任 ...

  7. 深入理解WMS(一):Window的创建过程

    8.3 Window的创建过程 View是Android中的视图的呈现方式,但是View不能单独存在,它必须附着在Window这个抽象的概念上面,因此有视图的地方就有Window.Android中可以 ...

  8. netty 5 alph1源码分析(服务端创建过程)

    研究了netty的服务端创建过程.至于netty的优势,可以参照网络其他文章.<Netty系列之Netty 服务端创建>是 李林锋撰写的netty源码分析的一篇好文,绝对是技术干货.但抛开 ...

  9. SharpDevelop插件系统创建过程全面分析

    前言 2005年2月,我申报了一个学校组织的大学生SRTP项目,项目的题目是数据结构动画演示系统.当初在做项目之前,我无意中买了一本书,书名为<SharpDevelop软件项目开发全程剖析> ...

最新文章

  1. 完美解释了递归,哈哈哈哈
  2. 天猫精灵怎么和台式计算机链接,天猫精灵怎么连接电脑
  3. 小帅小胖智能机器人价格_“高科技”开学第一课,小胖机器人老师又“红”了...
  4. 向前欧拉公式 matlab_你可能不知道的MATLAB操作#第三话
  5. stm32串口传输数据第一个数据被吞_stm32串口发送数据复位 第一个数据丢失
  6. replace into mysql去重_上传 phpexcel 类 入库并入库前去重
  7. 12月9日 perform使用入门
  8. javap的用途不断发展:您的Java类文件中隐藏了什么?
  9. jquery+ajax+ashx
  10. Nodejs最好的ORM - TypeORM
  11. 【优化算法】自适应对抗粘菌优化算法 (AOSMA)【含Matlab源码 1425期】
  12. WebService入门
  13. python动态调用函数
  14. Description Resource Path Location Type Cannot change version of project fac(导入maven项目出现红叉问题)...
  15. 百度网盘下载太慢,试试阿里云网盘?
  16. 机械臂运动学入门(二)
  17. MS7024-数字编解码/TV编码器
  18. input的几种禁用方法
  19. 编译原理学习(二)--终结符和非终结符
  20. 学习用 JS/CSS 画一个时钟

热门文章

  1. Jenkins + Pipeline 构建流水线发布
  2. vue,一路走来(10)--生产环境
  3. 百战程序员试题与答案(仅供参考)
  4. jquery 选择器,模糊匹配
  5. 生理周期,POJ(1006)
  6. css cursor 的可选值(鼠标的各种样式)
  7. 手势模型和Angular Material的实现
  8. TabHost刷新activity的方法
  9. 2011年中国民营企业500强名单,广东仅13家浙江180家江苏130家
  10. HDU 1010题解这是一道简单的DFS加回溯题,看懂后就会对递归和回溯有较深刻的理解。...