我正在尝试制作警报程序。到目前为止,我已经编写了一个活动,用户可以在其中选择他希望闹钟响起的时间。这工作正常。现在我需要使用警报管理器来告诉操作系统在将来的某个时间点调用我的一些代码。为了以粗略的方式测试这一点,我添加了以下代码,当我在主要活动中按下测试按钮时会执行该代码:
Intent intent = new Intent(getApplicationContext(), to_call_when_alarm_goes_off.class);
PendingIntent pIntent = PendingIntent.getBroadcast(getApplicationContext(),0, intent, 0);
AlarmManager alarms = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarms.cancel(pIntent);
alarms.setRepeating(
AlarmManager.RTC_WAKEUP,
System.currentTimeMillis()+1000,
AlarmManager.INTERVAL_DAY,
pIntent);
这应该意味着一些名为 to_call_when_alarm_goes_off 的代码将在我按下按钮后一秒钟被执行......现在这是我有点困惑的地方。我不太确定如何/在哪里设置“to_call_when_alarm_goes_off”。我所做的只是在我的项目中添加一个新类,如下所示:
package com.mycompany.alarmprogram;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class to_call_when_alarm_goes_off extends BroadcastReceiver
{
@Override
public void onReceive(Context arg0, Intent arg1)
{
// TODO Auto-generated method stub
Log.i("ALARM","TIME TO WAKE UP!!!");
}
}
所有代码都会编译,当我按下按钮时,第一个代码片段中的所有代码都会执行而不会崩溃 - 但一秒钟后,广播接收器代码不会执行。显然我误解了一些东西。