android开发之widget控件突然停止更新的原因

      在Android中开发widget控件的时候在appwidget-provider元素中有个属性android:updatePeriodMillis控制widget控件多长时间刷新一次,但是在1.6以后的版本中,谷歌从省电的方面考虑规定,当updatePeriodMillis的设置的值小于半个小时时,就会失效。也就是通过设置这个属性值,最短的更新间隔是半小时。但是我们有时候做的一些应用,比如时钟之类的必须要在极端的时间内刷新,必须另辟蹊径。网上流传的大都是这么几种方法:

  1. 通过自己发送android.appwidget.action.APPWIDGET_UPDATE这个广播刷新,但是他会使所有的桌面widget控件刷新
  2. 通过自己发送自定义的广播刷新

关键在于在哪里发送广播,有这么几种选择:

  1. 在OnEnable中开启定时线程发
  2. 单开一个service发
  3. 用alarm定时发

      后两种是可行的,第一种方法虽然看起来可行但是有一个bug,如果不解决就会发现自己的widget在运行了一段时间后莫名其妙的的停止了运行。我当时发现总是过一段时间莫名其妙的停止运行后很苦恼,找不到原因,但是系统每半小时的android.appwidget.action.APPWIDGET_UPDATE广播还是能正常启动,后来在全局的logcat里发现停止运行前有一个进程向widget的进程发送了一个信号,signal:9,经过查找后在

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值