Android 当设备使用AlarmManager启动时,如何启动警报?
我正在尝试使用Android 当设备使用AlarmManager启动时,如何启动警报?,android,android-studio,alarmmanager,Android,Android Studio,Alarmmanager,我正在尝试使用AlarmManager计划一个警报,以删除我的应用程序保存在文件夹中的文件,从最旧的文件开始,一次只删除一定数量的文件。我一直在读书,但有一点我感到困惑 设备启动时,启动下的步骤2: 公共类SampleBootReceiver扩展了BroadcastReceiver{ @凌驾 公共void onReceive(上下文、意图){ if(intent.getAction().equals(“android.intent.action.BOOT_COMPLETED”)){ //在这里
AlarmManager
计划一个警报,以删除我的应用程序保存在文件夹中的文件,从最旧的文件开始,一次只删除一定数量的文件。我一直在读书,但有一点我感到困惑
设备启动时,启动下的步骤2:
公共类SampleBootReceiver扩展了BroadcastReceiver{
@凌驾
公共void onReceive(上下文、意图){
if(intent.getAction().equals(“android.intent.action.BOOT_COMPLETED”)){
//在这里设置闹钟。
}
}
}
在您的例子中,扩展了BroadcastReceiver
的SampleBootReceiver
类位于单独的类文件中。只要您的清单中还有intent筛选器,它就会在启动手机时运行onReceive()
方法中的任何代码,如下所示:
<receiver
android:name=".SampleBootReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
此警报将使另一个
BroadcastReceiver
,NewReceiver
,在hourtStart
和minuteToStart
设置为的任何时间开始,每隔15分钟触发一次。只需在您的清单中设置新的接收器 上面写着//在这里设置闹钟。
是每次启动手机时要运行的代码。那么,你想在那里启动一个警报,定期运行并以设定的间隔执行任务吗?哦,我真的想得太多了。是的,我想在那里启动一个警报,定期运行并按设定的时间间隔执行任务。好的,我会更新一个回答你不会碰巧知道怎么做,是吗?此外,我还被困在我的应用程序中的代码放置位置。我很确定它会在我的舱单上,但是在@nick friskel下面,非常感谢!对不起,我最近刚刚从脑瘤中恢复过来,我也刚刚开始学习这一切,所以我很困惑。你有没有关于如何在android studio中将所有这些代码放入我的应用程序的截图?哦,谢谢你的回答。:)如果你能把你的项目放到GitHub上,我可以把它拉出来并提交更改,我会评论我所做的一切,以便你能理解!我实际上什么都没有,只是Android Studio提供给你的通用启动代码,我不知道如何使用GitHub,但我已经开始了。如果你想把我们在这个问题上的所有代码都放到你的GitHub项目中,然后推送它,我将对它进行必要的更改:)查看如何将你的项目推送/提交到GitHub,这很简单。
// Make the intent to fire NewReciever
Intent intent= new Intent(getApplicationContext(), NewReceiver.class);
// Make PendingIntent to be triggered each time the alarm goes off
final PendingIntent pIntent = PendingIntent.getBroadcast(this, 0,
intentDayAlarmStart, 0);
//setup calendar object for alarm start time
Calendar cal= Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());
cal.set(Calendar.HOUR_OF_DAY, hourToStart);
cal.set(Calendar.MINUTE, minuteToStart);
cal.set(Calendar.SECOND, 0);
//make the alarm
AlarmManager morningAlarm = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
//(type, starttime, interval, pintent)
morningAlarm.setInexactRepeating(AlarmManager.RTC_WAKEUP, dailyCalendar.getTimeInMillis(),
AlarmManager.INTERVAL_FIFTEEN_MINUTES, pIntent);