我尝试使用AlarmManager
安排闹钟,以删除我的应用已保存在文件夹中的文件,从最旧的文件开始,一次只删除一定数量的文件。我一直在阅读this link,但我一度感到困惑。
设备启动时启动警报下的步骤2:
public class SampleBootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
// Set the alarm here.
}
}
}

现在,代码对//Set the alarm here.
我感到困惑的地方。我可以根据具体情况更改哪些部分?
此外,我还没法把这个代码放在我的应用程序中。我确定它会在我的AndroidManifest
中,但在<application
部分或其自己的类别下或什么?
截图将非常有用。谢谢。我使用的是Android Studio 2.2.2,我的应用适用于Android 4.4。
答案 0 :(得分:1)
在您的情况下,扩展SampleBootReceiver
的{{1}}类位于单独的类文件中。每当手机启动时,它都会运行BroadcastReceiver
方法中的任何代码,只要您在清单中也有意图过滤器,如下所示:
onReceive()
然后,您需要启动<receiver
android:name=".SampleBootReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
。您可以使用AlarmManager
的{{1}}方法,或从onReceive()
启动的单独服务中执行此操作。
开始闹铃:
BroadcastReceiver
此警报会在BroadcastReceiver
和// 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);
设置为的任何时间开始以15分钟的间隔发出另一个BroadcastReceiver
,NewReceiver
。只需在清单中设置新的接收器!