Android Widget开发的相关技术点记录
来源:互联网 发布:淘宝星店怎么申请 编辑:程序博客网 时间:2024/06/04 20:03
1、Widget的UI需要展示的数据以静态变量的形式存放在了Provider中。
A、开启Service用来取数据,数据以静态变量形式存放在Service当中。
B、存储在本地。
这三种方案的好坏,其实全在于一个东西就是静态变量的生命周期。按Linux内存管理方式来说,只要内存不满,是不会释放内存中的进程的。也主是说,客户端启动一次之后,只要不是内存满了,静态变量就存在。得到这个结论以后,就可以看出来数据以静态变量形式存放在Provider和Service中结果是一样的(前提是Service没有在Application之外单开进
程)。
但是,理论上来讲,客户端毕竟是有可能被挤出内存的,这时候,Widget的数据就丢失了。这就体现出方案B的优越性来了,数据永远存在。但方案B的唯一缺点就是每次都需要去本地取,速度上有缺陷。
2、在什么地方开启线程获取数据
是开个Service呢,还是直接在Provider的onUpdate里面到了需要更新的时候开启一个线程呢?结论是,只要Service不单开进程,结果是一样的。因为它们的生命周期都是Application在内存中的生命周期,而使用Service的话,与Widget进行数据交换时还存在不方便的问题。
3、使用当前Context生成的AppWidgetManager才能更新UI。不要把Context保存起来,等到联网获取数据后再用它生成AppWidgetManager更新UI,这样是更新不成功的。
4、两次调用new RemoteViews,传入相同viewId的话,第二次得到的RemoteViews里面的View树与第一次相同。暂时没有解决方案,只能先reset一下,这样可以清除上次的UI数据,但不能清除PendingIntent。可以通过设置空的PendingIntent来实现无响应。
Intent intent = new Intent();
return PendingIntent.getBroadcast(context, 0, intent, 0);
5、静态变量存储ID时,一旦客户端异常,进程崩溃后,ID丢失。这样,即使再后台登录,没有ID信息,Widget上的UI数据也不会更新。所以,UI数据可以静态变量存储,进程崩溃后重启时可以重新获取,但ID信息一定得存储到本地。比如,SharedPreference,不要每次更新都去取,这样更新时会很卡,可以每次判断一下当前是否没有ID信息,没有的话再去本地取。另外就是每次系统调用onUpdate和onDeleted时,同步一下本地的ID信息。
- Android Widget开发的相关技术点记录
- Android 的widget的一些开发相关介绍
- Android相关的一些技术文档记录
- 记录android开发用到的功能点
- Android开发技术点
- Android 开发技术点
- 记录几个Android开发相关的网站
- android开发widget的过程
- Android开发----widget的使用
- android widget 几个问题记录
- Android开发问题点记录
- android 开发坑点记录
- Android 开发相关注意点
- Android Widget 开发详解(二) +支持listView滑动的widget
- Android Widget 开发详解(二) +支持listView滑动的widget
- android.support.v7.widget.SearchView开发记录(一)
- 保护android进程相关技术点
- Android Widget 电池插件的开发实现
- Servlet会话跟踪技术
- 网页图片放大镜
- fasm完成一个简单的FAT12的镜像文件
- 实现Serializable接口的可控制序列化实现
- 实现JFileChooser选择多文件放入JTable中,然后删除鼠标指定的行
- Android Widget开发的相关技术点记录
- Arrays - 判断两个数组是否一致 以及常用的判断
- 高精度四则运算---加减
- ceo的每天都要做13件事情
- 找最小的K个数
- 10.24仿京东网页开发日程
- unix环境高级编程-4.16-符号链接
- WindSh内置命令
- 保存会话-cookie