android2.1之后appwidget的一些问题

本文介绍了Android AppWidget开发中的一些限制及解决办法,如appWidget自动更新属性在Android 2.0后的无效性、无法通过get方法获取TextView内容等问题。提出了使用SharedPreferences存储数据以实现跨组件数据共享的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.appwidget的xml配置文件中有一个控制appWidget自动更新的属性
android:updatePeriodMillis=“86400”
这个从android2.0以后就属性无效了!android官网上面竟然没有说明
2.appwidget的功能非常有限
如果你的widget里面有一个TextView的话,你甚至无法得到这个控件中的文字内容,不要想用getText()方法,因为appwidget只支持一种对其包含控件的访问方法:
RemoteViews rv = new RemoteViews(packageName, layoutId);
rv中包含一些设置属性的方法
比如:setTextViewText(viewId, text)等
但是不支持一切getxxx方法
因此,你只能将数据呈现到appwidget上面。但是,你或许会遇到这种情况:从一个activity或service中获取数据显示到appwidget,当用户进一步操作时(点击了appwidget上的一个按钮),appwidget将会启动另一个activity或者service,并将数据传输给它。例如:启动一个dialog对话框activity让用户输入搜索关键字,用户点击确定之后,关键字会出现在appwidget上,再点击appwidget上的搜索按键,appwidget会启动浏览器,跳转到搜索页面。
如果以上情况,开发者不可能从appwidget中获取到关键字,因此,比较好的解决方法是利用sharedPreference,将关键字存储进sharedPreference,无论是appwidget的UI显示,还是浏览器activity获取关键字的操作,全部变成读取sharedPreference数据。当然,也可以用其存储方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值