如何设置app以在每天的特定时间触发服务/警报?

时间:2016-05-17 10:27:50

标签: android service alarmmanager

所以我希望我的应用在每天早上8点发送通知,以确定当天是否有活动。

我有一个SQLlite DB,用于存储要发送通知的日期。我想从我的应用程序中得到的是这个 - 每天早上8点,它应该检查今天是否有活动。如果当天有活动,则发送通知。

我已经使用数据库和通知实现了该部分。我只需要实现应用程序每天早上8点检查数据库的部分。

**更新:**我提供了一项服务,检查当前时间是否为8:00。以下是该服务的代码。

{{1}}

问题是服务只检查一次。如何让它每分钟检查一次? 有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:2)

使用待定意图

挂起的意图是您为另一个应用程序(例如,通知管理器,警报管理器或其他第三方应用程序)提供的令牌,它允许此其他应用程序使用您的应用程序的权限来执行预定义的代码段。

要通过待处理的意图执行广播,请通过PendingIntent类的getBroadcast()方法获取PendingIntent。要通过待处理的意图执行活动,您可以通过PendingIntent.getActivity()接收活动。

或者

PendingIntent +警报管理器+广播接收器组合可以正常工作,您必须动态注册和取消注册广播接收器,而不是在清单中。像

public void onResume()
  {
    IntentFilter filter = new IntentFilter();
    filter.addAction("android.provider.Telephony.SMS_RECEIVED");
    registerReceiver(mybroadcast, filter);  

  }

  public void onPause()
  {
    unregisterReceiver(mybroadcast);
  }