android 与或,android – 哪个值的优先级更高,updatePeriodMillis或与Alarm相关的值?

我知道参数updatePeriodMillis根据/ res / xml中存在的widgetproviderinfo.xml中的规范确定应用程序窗口小部件的更新频率

android:configure="com.example.appwidget.ConfigurationActivity"

android:initialLayout="@layout/layout_appwidget_large"

android:minHeight="115dp"

android:minWidth="250dp"

android:updatePeriodMillis="1800000" >

这种方法的缺点在于,如果电话正在睡眠,则通过以指定的间隔唤醒电话来更新小部件.所以问题在于电池消耗

如果间隔非常小,这是一个主要问题.

但是,如果您需要更频繁地更新和/或在设备处于睡眠状态时不需要更新,那么您可以根据警报执行更新

不要唤醒设备.为此,请使用AlarmManager使用AppWidgetProvider接收的Intent设置警报.将警报类型设置为

ELAPSED_REALTIME或RTC,仅在设备唤醒时发出警报.然后将updatePeriodMillis设置为零(“0”).至

代码看起来像这样:

final Intent intent = new Intent(context, UpdateService.class);

final PendingIntent pending = PendingIntent.getService(context, 0, intent, 0);

final AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);

alarm.cancel(pending);

long interval = 1000*60;

alarm.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(),interval, pending);

所以我的问题如下:

假设AlarmManager用于执行更新.此外,如果在widgetproviderinfo.xml中,updatePeriodMillis未设置为0,则

哪个值优先?作为Alarm或updatePeriodMillis的一部分指定的值?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值