我正在寻找备份app小部件当前状态的最佳方法。我有一个位图,我记得它的时间戳:
private data class TimestampedBitmap(val bitmap : Bitmap, val timestamp : Long)
private var tsBitmap: TimestampedBitmap? = null
但是,如果我的应用程序被杀死 - 重新启动,我将丢失我的tsBitmap
实例。我想避免从网络重新加载这些数据(可能没有网络连接开始),我正在寻找最优雅的方法来实现它。
我研究了AppWidgetProvider.onUpdate()
的文档:
当要求此
AppWidgetManager.ACTION_APPWIDGET_UPDATE
提供商为AppWidgetManager.ACTION_APPWIDGET_RESTORED
提供AppWidget
时,系统会响应RemoteViews
和AppWidget
广播。
第二种事件类型听起来很有趣。这是官方文档所说的:
String ACTION_APPWIDGET_RESTORED
在从备份恢复与该提供商相关的
AppWidgetProvider
状态之后发送到AppWidget
。意图包含有关如何将AppWidget
ID从已还原数据转换为新等效数据的信息。
从技术上讲,“与该提供者相关的国家”是什么?我可以让TimestampedBitmap
成为该州的一部分吗?我意识到这个事件类型是关于仅在重新安装应用程序时从备份恢复,但我仍然想知道它所讨论的状态是否是我应该使用的状态?