onUpdate
我有一个 Android 小部件,它在它的方法中发出相当多的网络请求。我的小部件预计每天刷新一次。它总是Canvas
使用AsyncTask
.
当我将设备从纵向转向横向并返回纵向时,似乎onUpdate
再次调用了该方法,并且再次发出了所有这些繁重的网络请求。
如果可能,我可以阻止我的应用程序在方向更改时重新更新吗?
onUpdate
我有一个 Android 小部件,它在它的方法中发出相当多的网络请求。我的小部件预计每天刷新一次。它总是Canvas
使用AsyncTask
.
当我将设备从纵向转向横向并返回纵向时,似乎onUpdate
再次调用了该方法,并且再次发出了所有这些繁重的网络请求。
如果可能,我可以阻止我的应用程序在方向更改时重新更新吗?
我的小部件预计每天刷新一次
你无法完全控制它。无论出于何种原因,欢迎主屏幕onUpdate()
更频繁地触发呼叫。
如果可能,我可以阻止我的应用程序在方向更改时重新更新吗?
不,但正如 Kuffs 建议的那样,您可以减少更新过程的费用:
或者,onUpdate()
如果来电太快并且您确信主屏幕并没有以某种方式丢失您之前的RemoteViews
. 就个人而言,我会重新生成RemoteViews
使用缓存的内容,以防某些主屏幕实现丢弃了您之前的内容RemoteViews
(例如,进程被终止并重新启动)。
另外,请使用IntentService
,而不是AsyncTask
,来处理长时间的onUpdate()
工作。否则,一旦onUpdate()
返回,您的进程就不会保留在内存中,并且您的进程可能会在您的工作完成之前终止。