美文网首页
桌面小部件更新时间优化

桌面小部件更新时间优化

作者: ReleaseYH | 来源:发表于2020-06-01 08:58 被阅读0次

    大家都知道进程保活一直都是不少开发者头疼的事情,厂商的各种限定以及sdk的更新,导致应用进程无法长期保活。以此为背景,项目有个桌面部件的更新问题就需要解决。
    安卓桌面有种常用的桌面小部件,比如网易云音乐的音乐播放器。就是用到AppWidgetProvider组件去实现。其实AppWidgetProvider的基类就是BroadcastReceiver,说到组件,基本都知道他有了生命周期,AppWidgetProvider也有,
    在手机系统桌面上两指缩放,会有菜单栏设置,里面就有添加桌面小组件的操作。所以AppWidgetProvider生命周期也从添加组件开始。
    1、在桌面上添加小部件,让小部件可用会调用:onEnabled
    2、作为通知会调用onReceive
    3、小部件可用后会调用onUpdate,表明小部件状态由不可用变为可用发生了变化
    4、作为通知又会调用onReceive
    5、当拽小部件到垃圾篓删除小部件时会调用onDeleted
    6、作为通知又会调用onReceive
    7、删除小部件后,小部件变为了不可用会调用onDisabled
    8、作为通知又会调用onReceive

    AppWidgetProvider的使用,可以参考下面的链接https://www.jianshu.com/p/fbcf08650bc0,具体使用里面会讲到。

    由于系统原因和各种机型会导致桌面部件的更新不及时,所以决定使用前台服务来大概率保证部件的更新问题。不过这就需要用户一直保证前台服务通知栏的显示。
    就大概讲个思路:在onEnabled方法中,启动前台服务,onDisabled中也成对停止服务。前台服务中onStartCommand(),拿取系统时间更新,去发送广播通知给AppWidgetProvider,触发AppWidgetProvider的onUpdate方法,保证更新。

    相关文章

      网友评论

          本文标题:桌面小部件更新时间优化

          本文链接:https://www.haomeiwen.com/subject/fxfjzhtx.html