好的,所以我做了一些研究,共识似乎是您无法以编程方式更新android:updatePeriodMillis
。
似乎您必须使用AlarmManager
代替,这似乎就像使用sledghammer来破解螺母一样……API不仅让您更新了核心updatePeriodMillis
,这很奇怪。
依赖于Web上的内容总会有轻微的风险,因为API趋于发展并且旧的答案已不再相关。
所以我只是检查情况是否仍然如此。例如,http://developer.android.com/guide/topics/appwidgets/index.html处的指南至少暗示可以更改AppWidgetProvider
的更新周期。讨论updatePeriodMillis
时说:
“您可能还允许用户调整配置中的频率-有些人可能希望股票报价器每15分钟更新一次,或者一天仅更新4次。”
然后继续讨论使用AlarmManager
,但显然仅与避免唤醒设备有关,而不是与更改更新时间有关。
感谢您对此的任何帮助。
最佳答案
所以我只是检查情况是否仍然如此。
是的,仍然无法更新updatePeriodMillis
。太糟糕了,因为我很想看看updateUpdatePeriodMillis()
方法。特别是如果这是通过某种生成器或事务对象完成的,则意味着也可以通过updateUpdateUpdatePeriodMillis()
方法对其进行更改。
:-)
看来您必须改用AlarmManager
您也可以在Android 5.0+上使用JobScheduler
,尽管我怀疑您也不太喜欢。
您还可以允许用户配置updatePeriodMillis
的多个倍数,然后仅每N次更新就完成一次工作,尽管这样做效率不高。
或者,您根本无法定期更新应用程序小部件,而只能根据需要根据应用程序功能而不是时间进行更新。恕我直言,这是大多数应用程序应该做的。
关于android - 以编程方式更改android:updatePeriodMillis,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28072947/