首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android中的告警管理器问题

Android中的告警管理器问题
EN

Stack Overflow用户
提问于 2012-05-07 23:41:19
回答 1查看 658关注 0票数 1

我正在使用Alarm ManagerService一起更新小部件实例。在做这件事的时候,我想我忽略了一些重要的地方。

我就是这样设置Alarm Manager

代码语言:javascript
复制
public class MyWidget extends AppWidgetProvider {

    public void onEnabled(Context ctx) {
        alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
        Intent i = new Intent(context, MyService.class);
        pi = PendingIntent.getService(context, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);

        // Repeat value depends on preferences.
        Long repeat = Long.parseLong(prefs.getString("update_preference", "600"));
        alarmManager.setRepeating(AlarmManager.RTC, SystemClock.elapsedRealtime(), 1000*repeat, pi); 
    }

    @Override
    public void onDisabled(Context context) {
        super.onDisabled(context);
        AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
        Intent i = new Intent(context, MyService.class);
        PendingIntent pi = PendingIntent.getService(context, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
        alarmManager.cancel(pi);
    }

}

让我解释一下:

  1. 如果设备接到呼叫或呼叫,Edge/3G无法正常工作。我该怎么处理电话?如果可以,是否有可能在调用后重新启动/触发警报管理器?或任何其他建议都很感激。
  2. 当设备休眠(几分钟)后,解锁警报管理器立即工作,即使间隔值超过了。但是如果睡着需要很长时间,解锁后报警管理器和小部件接收器也不能工作。对于每一次的重复,有什么方法可以超越睡眠。
  3. 如何控制重启进度?我的意思是,在重新启动服务之后,应该启动小部件更新。不知道怎么开始。

任何帮助或建议都会很好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-14 15:57:31

你的一些问题不太清楚,所以我会尽我最大的理解去回答:

  1. 您可以为变化注册广播接收器。
  2. setRepeating调用更改为使用AlarmManager.RTC_WAKEUP而不是AlarmManager.RTC。阅读更多这里
  3. 您可以为Intent.ACTION_BOOT_COMPLETED注册广播接收器。这必须注册为接收器在您的应用程序清单。阅读更多的这里
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10490612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档