0

我正在尝试制作一个小部件,其更新频率可以由用户定义并在运行时更改。我可以使用警报管理器来做到这一点,但是,有没有办法在设置警报后更改警报的间隔?

如果没有,我仍然可以取消它并以新的间隔重新启动它,但是我不知道这将如何工作,因为小部件甚至可能不会添加到主屏幕,所以问题是,有没有办法知道警报是否是运行或更好,小部件在主屏幕上?

谢谢

// 编辑 如何确定您的小部件是否存在

private boolean widgetExists() {
    ComponentName myWidget = new ComponentName(this, MyWidgetProvider.class);
    int[] ids = AppWidgetManager.getInstance(this).getAppWidgetIds(myWidget);
    return ids.length > 0;
}
4

1 回答 1

1

有没有办法在设置警报后更改警报的间隔?

对于这一点,我们可以参考以下文档AlarmManager.setRepeating()

安排一个重复的警报...如果已经为同一个 IntentSender 安排了一个警报,它将首先被取消。

换句话说,使用相同类型设置警报会取消现有间隔并使用新值重置警报。


有没有办法知道警报是否正在运行或更好,小部件是否在主屏幕上?

这是 的工作AppWidgetProvideronEnabled您的提供者( 、等)中的回调onUpdate可用于确定任何小部件是否实际处于活动状态(AppWidgetProvider 文档)。

于 2012-12-15T23:37:10.973 回答