代码之家  ›  专栏  ›  技术社区  ›  Peterdk

AppWidget:如何在更新之间保留静态对象?

  •  1
  • Peterdk  · 技术社区  · 15 年前

    AppWidget 包括 ImageView AlarmManager ).

    所有的渲染和存储都在 AppWidgetProvider

    作为一个好公民,我想尽量减少CPU的使用等,所以我有 Paint 对象和其他预计算值存储在 .

    然而,事实证明 这个过程非常渴望死在我身上,当它和酷孩子们无所事事的时候。我知道这是标准行为。然而,随着它的悲剧性死亡,它也把我珍贵的静态存储的物品带进了坟墓,再也看不见了,这就不那么方便了。

    我的哀悼不能解决任何问题,所以我想知道:有没有办法解决这个问题?或者根本没有办法,我是否应该重新初始化每一次重画的所有内容?

    3 回复  |  直到 15 年前
        1
  •  1
  •   Peterdk    14 年前

    不是一个真正的解决方案,但我通过不缓存所有的东西来解决。

        2
  •  1
  •   Catherine Darrow    14 年前

    我正在做类似的事情——创建一个时钟小部件——并且发现它比你想象的还要糟糕。当Android厌倦了AppWidgetProvider的存在时,它不仅仅是在扼杀它。它会立即终止它并为每次更新重新创建它(正如构造函数中的print语句所示)。

    我能为您提供的最佳解决方案是尝试以更持久的方式处理对象的维护和存储,比如配置活动,或者服务。不过,对于绘画对象来说,这似乎有点过头了。

        3
  •  0
  •   Cheryl Simon    15 年前