今天搞个小部件,就是那种可以放在手机桌面上显示东西的小玩意儿。我寻思着,这东西得定时刷新数据,不然显示个过期的信息有啥用?然后我就去翻翻资料,发现有个叫“updatePeriodMillis”的属性,好像就是干这个的。
我一开始还以为这玩意儿挺复杂的,结果上手一试,也挺简单的。说白,它就是一个设置更新频率的参数。你想让小部件多久更新一次,就给它设置一个对应的时间值,单位是毫秒。
我先在XML文件里找到这个属性。你看,就像这样:
<appwidget-provider ...
android:updatePeriodMillis="1800000"
... />
我一开始设置成“1800000”,这是多少来着?我算算,,原来是30分钟。意思就是每隔30分钟,小部件就会自动更新一次。
然后,我就开始琢磨,这个更新到底是怎么实现的?
原来,系统会定期调用一个叫“onUpdate”的方法。这个方法就在你定义的小部件提供者类(AppWidgetProvider)里面。每次更新的时候,你都得在这个方法里写上更新数据的逻辑。
我试着改改这个时间,改成“86400000”,也就是一天。这样,小部件就变成每天更新一次。我觉得这个频率也挺合适的,毕竟我显示的是一些不太需要频繁变动的信息。
不过这里有个小坑,要是设置的时间太短,比如几秒钟就更新一次,那可能会有点费电。咱也不能为追求实时性,就使劲儿地缩短更新间隔,对?
- updatePeriodMillis,就是用来设置小部件自动更新频率的。
- 时间单位是毫秒,自己换算一下。
- 更新的逻辑要写在onUpdate方法里。
- 更新频率别设置得太短,省点电。
一点小感悟
搞这些小东西还挺有意思的。通过自己动手,我发现很多东西并没有想象中那么难。只要你肯去查资料,肯去动手尝试,很多问题都能迎刃而解。以后,我还想尝试更多有趣的小部件,把我的手机桌面变得更加个性化!
免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。