【问题标题】:Android kotlin widget: where to initialise and to store stateAndroid kotlin 小部件:在哪里初始化和存储状态
【发布时间】:2020-06-23 21:54:56
【问题描述】:

我正在尝试编写一个主屏幕小部件。 (像往常一样 developer.android.com 是没用的。)生命周期似乎与 Activity 完全不同;这在任何地方都有记录吗?

我经常想获取一个新值,将其添加到以前的值列表中,然后更新小部件。

状态存储在哪里以及如何初始化?

我有

class CurrentCurrentWidget : AppWidgetProvider() {
    private lateinit var batteryManager: BatteryManager

但我不明白如何设置batteryManager,因为没有onCreate

我试过了

  if(batteryManager == null) {...}

到处都是很不满意的地方。

onEnabled 是什么? 启用是什么意思?同上禁用?再说一遍:生命周期显然是完全不同的——而且没有记录。

我在onUpdate 中设置了一个断点,但没有被命中。我需要做什么才能让它运行?我的印象是,这只会根据android:updatePeriodMillis="1000" 定期调用,但显然不是这样。

这些有记录吗?

【问题讨论】:

    标签: android-widget


    【解决方案1】:

    据我所知,没有办法在onUpdate 的调用之间保持状态。

    因此,我创建了一个类(有点像视图模型)来保存所需的值,它会在onUpdate 的开头从SharedSettings 加载自身并在最后保存自己。

    这似乎不太令人满意。

    我应该使用Bundle吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-03
      • 2016-09-27
      • 2020-01-05
      • 1970-01-01
      • 2022-08-15
      • 1970-01-01
      • 1970-01-01
      • 2011-02-06
      相关资源
      最近更新 更多