AlarmReceiver的启动
AlarmManager alarmMgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
intent1 = new Intent(MyService.this,AlarmReceiver.class);//在这里intent1 要设置为全局变量方便其他地方的使用,在开头设置 public static Intent intent1;
Bundle data = new Bundle();
data.putString("name",name)..........................//这里进行参数的传递
intent1.putExtras(data);
pendIntent = PendingIntent.getBroadcast(MyService.this,0,intent1,PendingIntent.FLAG_UPDATE_CURRENT);//这里pendIntent必须设置为全局变量,为以后关闭AlarmReceiver做准备 public static PendingIntent pendIntent;
//设置广播发送时间,5秒一次
long triggrtAtTime = SystemClock.elapsedRealtime()+5*1000;
alarmgr.set(AlarmManager.ELAPSED,triggerAtTime.pendIntent);//最好把这些代码写在try .....catch(Exception e)......里面 方便异常的获取
AlarmReceiver的关闭
AlarmManger alarm = (AlarmManger)getSystemService(Context.ALARM_SERVICE);
alarm.cancel(pendIntent);//这里用的pendIntent 就是我们前面设置的全局变量,如果启动和关闭不在 同一个类里面 可以用 类名.pendIntent 来关闭AlarmReceiver
AlarmReceiver类
public class AlarmReceiver extends BroadcastReceiver{
@Override
public void onReceiver(Context arg0,Intent arg1){
try{
//在这里面进行 相应的数据操作
}catch(){
}
}
}