设备使用AlarmManager启动时如何启动警报?

时间:2016-12-18 18:19:34

标签: android android-studio alarmmanager

我尝试使用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。

1 个答案:

答案 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分钟的间隔发出另一个BroadcastReceiverNewReceiver。只需在清单中设置新的接收器!