第一时间自动启动闹钟设置闹钟
我使用闹钟每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天启动服务的代码。
伙计如果有人在我的问题中发现任何错误,请道歉我和请纠正这些错误并回答我。
那是因为你使用System.currentTimeMillis的()
试试这个
System.currentTimeMillis的()*(15 * AlarmManager.INTERVAL_DAY)
alarm.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()*(15 * AlarmManager.INTERVAL_DAY), 15 * AlarmManager.INTERVAL_DAY, pIntent);
谢谢你的回复,我会尽力让你知道 – Palanivelraghul
对不起老兄。它不工作。它再次立即启动。 – Palanivelraghul
好的,但它应该工作的问题是在那里在System.currentTimeMillis(),因为你正在触发警报在当前时间 –
@Mehul Gajjar是正确的关于System.currentTimeMillis()
所以你可能想更换
System.currentTimeMillis()
与
(15 * 24 * 60 * 60 * 1000 * System.currentTimeMillis())
说明:
System.currentTimeMillis()
将设置报警到当前的时间,让你的服务将启动,立竿见影。在15天后设置闹钟将解决您的问题。 15 * 24 * 60 * 60 * 1000
将等于15天。乘以当前的时间里程将在15天后给你当前的时间。
在短代码将会像
alarm.setRepeating(AlarmManager.RTC_WAKEUP, (15 * 24 * 60 * 60 * 1000 * System.currentTimeMillis()), 15 * AlarmManager.INTERVAL_DAY, pIntent);
我希望这会帮助你。
感谢您的答案哥们。我会再次检查,并让你知道。 – Palanivelraghul
对不起老兄,还是第一次重新开始。 – Palanivelraghul
你能告诉我你是如何初始化你的服务? –
发布您的代码以供进一步调查 – Noorul
@Ahamed感谢您的回复。我已经发布我的代码。它是不够的? – Palanivelraghul