【问题标题】:Updating a widget only when device is on AND widget is visible on home screen仅在设备开启且小部件在主屏幕上可见时更新小部件
【发布时间】:2011-02-22 10:11:30
【问题描述】:

据我了解有关小部件的官方文档,我有点困惑。

“标准”方式是定义 BroadcastReceiver 并以毫秒为单位定义更新频率 - 这种方式允许 30 分钟的最小更新间隔以节省电池电量。听起来很合理。

我发现阅读 Google 文档的“手动”方式是使用AlarmManager 自己处理小部件的更新。使用这种方法可以提高更新间隔(当然不鼓励!),并且可以使用在睡眠时不唤醒设备的警报类型。 (我假设一旦设备因其他原因唤醒,事件应触发后的任何时间发送意图 - 对吗??)

现在,我对以下想法感到困惑:小部件驻留在主屏幕上。或者至少这是他们最常见的地方。 Android 在主屏幕上提供了许多页面(标准是 5 或 7 个),因此即使用户将 Widget 放置在那里,它也可能不可见!

只要小部件显示的信息只是一个非常简单的文本(比如当前时间!),可以在需要时毫不延迟地计算或导出,我不想要任何更新频率,甚至是不可见的设备唤醒意图!
但是只要设备处于开启状态,或更具体地:只要屏幕开启并且小部件可见,我想要很多更新事件!就像显示秒数的时钟需要每秒重绘一次的意图!

如何实现? “安卓模拟时钟”是如何实现的?方法 A(“标准”)和 B(“手动”)都不会让我的更新频率很高,但前提是设备处于开启状态并且我的小部件可见。

谁能给个提示???

【问题讨论】:

    标签: android android-widget android-alarms


    【解决方案1】:

    我假设一旦设备因其他原因唤醒,事件应触发后的任何时间发送意图 - 对吗??

    是的。

    我不想要任何更新频率,甚至不想要任何不可见的设备唤醒意图!

    但在很多情况下,您的用户会这样做。您在更新中所做的任何值得做的事情都可能需要几秒钟的时间。用户不会坐在那里等待几秒钟。因此,应用小部件更新模型表明您会不断更新应用小部件,因此当用户查看应用小部件时,他们会立即获得更新的数据。

    但只要设备处于开启状态,或者更具体一点:只要屏幕处于开启状态且小部件可见,我就想要很多更新事件!就像显示秒数的时钟需要每秒重绘一次的意图!

    编写您自己的主屏幕应用程序。

    “Android 模拟时钟”是如何实现的?

    这是主屏幕应用程序的一项功能。

    【讨论】:

    • 相信我:我的“计算”不会消耗任何时间。显示某个时间点的剩余分钟数只不过是每分钟减去一分钟...... :-) 这就是为什么我确信我不需要做任何事情,除非我的小部件对用户可见!我可以添加到主屏幕的时钟小部件根本不是小部件?你确定吗??
    • @Zordid:“我可以添加到主屏幕的时钟小部件根本就没有小部件?” -- 手机附带的是主屏幕的功能。仅仅因为它们出现在“小部件”上下文菜单中并不意味着它们是每个 SDK 的应用小部件。
    猜你喜欢
    • 1970-01-01
    • 2017-02-19
    • 1970-01-01
    • 2020-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    相关资源
    最近更新 更多