问题描述
- 从onReceive 方法中设置新的报警器
-
在数据库(按时间排序)中有一个 reminders 的集合,当程序开启时我就调用 setAlarm。我需要在 onReceive 方法中添加代码来实现下面的任务:
1.从数据库中获取第一个提醒。
2.获得相关提醒的延迟。
3.设置一个新的报警获得下一个提醒。
我创建的 BroadcastReceiver 类:public class AlarmReceiver extends BroadcastReceiver{ private static final String DEBUG_TAG= "AlarmReceiver"; public void onReceive(Context arg0, Intent arg1) { // TODO Auto-generated method stub Log.d(DEBUG_TAG,"ALARM!!!"); // --mycode-- } }
Activity 类:
public class AlarmActivity extends Activity { private Context context; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_layout); context = getApplicationContext(); } public void setAlarm(View v){ Intent intent = new Intent(this,AlarmReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+ Delay,pendingIntent); Log.i("SETTER","Alarm started"); } public void stopAlarm(View v){ Intent intent = new Intent(this,AlarmReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); pendingIntent.cancel(); } }
现在在 --mycode— 这部分,新的延迟将会从数据库中获得,并且会使用这个新的Delay设置新的报警。
如何从 onReceive方法中设置一个新的 AlarmManager?
时间: 2024-10-28 08:01:34