技术开发 频道

PendingInent 与 AlarmManager

  2.2 闹铃提醒

  在OPhone系统中,当应用程序所设置的闹铃时间到了后,OPhone系统中的AlarmManagerService就会从系统底层获取一个闹铃事件并从自己维护的队列中取出其匹配的闹铃,然后通过其应用注册的PendingIntent把该闹铃事件发送回给应用。

   PendingIntent.send();

   当我们的应用收到该Intent后就会启动相应的Activity来提醒用户闹铃时间到。

  程序代码如下:

package com.android.alarmclock;
import android.content.Context;
import android.content.Intent;
import android.content.BroadcastReceiver;
import android.os.Handler;
import android.os.PowerManager;
import android.os.SystemClock;

public class AlarmReceiver extends BroadcastReceiver {
    @Override
    
public void onReceive(Context context, Intent intent) {
        
long now = System.currentTimeMillis();
        
int id = intent.getIntExtra(Alarms.ID, 0);
        
long setFor = intent.getLongExtra(Alarms.TIME, 0);
        Intent fireAlarm
= new Intent(context, AlarmAlert.class);
        fireAlarm.putExtra(Alarms.ID, id);
        fireAlarm.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        
//启动一个新的UI对象来提醒
        context.startActivity(fireAlarm);
   }
}
0
相关文章