在选择程序widget时弹出本程序的widget说明以供选择
思路:
1.在widget启动的update方法中启动service
2.由service启动SettingActivity
3.在SettingActivity中发送广播
4.在widget的onReceiver方法中接受广播,改变widget状态
问题:
由于AppwidgetProvider中只能通过RemoteView 操作widget
能改变的属性非常少。
只能改改图片背景 按钮素材之类
可以做出皮肤替换之类的功能
但是难以进行功能选择(布局无法修改)
解决方案:
包所有widget布局/功能放在同一个布局文件中。
通过setViewVisbillty来决定显示哪个widget 达到功能选择的目的
问题:
必须预先在xml中定义widget的大小,若多个widget大小不一致,则必须按最大的指定。
浪费空间
多个widget大部分是某个功能的 完整/精简版 提供不同大小的widget
若要预先指定大小,则丧失了选择widget功能的意义。
解决方案:
暂无.
Google未开放相关API
原生Lanuch内使用私有对象(mWorkSpace)操作widget ,无法在我们的程序中操作
各个OEM厂商定制的Lanuch各有不同
|