2

好的,所以我做了一些研究,共识似乎是你不能以android:updatePeriodMillis编程方式更新。

看来你必须AlarmManager改用,这似乎是用大锤来破解坚果......奇怪的是 API 不只是让你更新 core updatePeriodMillis

依赖网络上的内容总是有轻微的风险,因为 API 趋于发展,旧的答案不再相关。

所以我只是在检查是否仍然如此。例如, http: //developer.android.com/guide/topics/appwidgets/index.html上的指南至少暗示可以更改AppWidgetProvider. 讨论updatePeriodMillis时说:

“您还可以允许用户在配置中调整频率——有些人可能希望股票代码每 15 分钟更新一次,或者每天只更新四次。”

然后继续谈论使用AlarmManager,但显然仅与避免唤醒设备有关,而不是与更改更新周期有关。

感谢您对此的任何帮助。

4

1 回答 1

3

所以我只是在检查是否仍然如此。

是的,您仍然无法更新updatePeriodMillis。这太糟糕了,因为我很想看到一种updateUpdatePeriodMillis()方法。特别是如果这是通过某种构建器或事务对象完成的,这意味着它也可能通过updateUpdateUpdatePeriodMillis()方法进行更改。

:-)

看来您必须改用 AlarmManager

您也可以JobScheduler在 Android 5.0+ 上使用,但我怀疑您也不会那么喜欢。

您还可以允许用户配置多个updatePeriodMillis,然后仅在每 N 次更新时执行您的工作,尽管这不是非常有效。

或者,您根本无法定期更新您的应用小部件,而是仅根据应用功能而不是根据时间来更新它。恕我直言,这是大多数应用程序应该做的。

于 2015-01-21T17:46:06.660 回答