以编程方式更改android:updatePeriodMillis

时间:2015-01-21 17:09:50

标签: android android-appwidget appwidgetprovider

好的,所以我做了一些研究,而且共识似乎是你无法以编程方式更新android:updatePeriodMillis

似乎你必须使用AlarmManager代替,这似乎是使用sledghammer破解坚果......奇怪的是,API并不能让你更新核心updatePeriodMillis

依靠网络上的内容,总是存在轻微的风险,因为API往往会发展,旧的答案不再相关。

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

  

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

然后继续谈论使用AlarmManager,但显然只是为了避免唤醒设备而不是更改更新周期。

感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:3)

  

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

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

: - )

  

似乎你必须使用AlarmManager

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

您还可以允许用户配置updatePeriodMillis的某些倍数,然后每N次更新只执行您的工作,但这并不是非常有效。

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