首次自动启动警报设置警报

时间:2017-03-06 06:40:58

标签: android service alarmmanager alarm

我使用闹钟每15天开始一次服务。警报在第一次安装时启动。一旦警报触发正常服务,每隔15天,但在启动警报时服务开始。我不想在安装时启动服务。如何阻止这一点。 我不知道我是否使用了错误的格式?

  

注意:除了这种情况,我不会在任何地方开始服务。

Intent intent = new Intent(context, InitiateService.class);
    PendingIntent pIntent = PendingIntent.getService(context, 12345, intent, PendingIntent.FLAG_CANCEL_CURRENT);
    alarm.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 15 * AlarmManager.INTERVAL_DAY, pIntent);
  

这是我在清单文件中使用的。

 <service android:name=".service.InitiateService" />

这是我每隔15天启动一次服务警报的代码。

  

伙计如果有人在我的问题中发现任何错误,请向我道歉并请纠正这些错误并回答我。

2 个答案:

答案 0 :(得分:1)

这是因为您使用了 System.currentTimeMillis()

试试这个

System.currentTimeMillis()*(15 * AlarmManager.INTERVAL_DAY)

alarm.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()*(15 * AlarmManager.INTERVAL_DAY), 15 * AlarmManager.INTERVAL_DAY, pIntent);

答案 1 :(得分:1)

@Mehul Gajjar关于$sql=mysqli_query($connect,"select * from db_comment where member_id=52");

是正确的

所以你可能想要替换

System.currentTimeMillis()

System.currentTimeMillis()

说明:

(15 * 24 * 60 * 60 * 1000 * System.currentTimeMillis()) 会将闹钟设置为当前时间,因此您的服务将立即开始。 15天后设置警报将解决您的问题。 System.currentTimeMillis()将等于15天。将它乘以当前的时间里程将给你15天后的当前时间。

简而言之,您的代码就像

15 * 24 * 60 * 60 * 1000

我希望这会对你有所帮助。