Intent intent = new Intent("cn.pocketdigi.update.alarm"); intent.setClass(this, AlarmReceiver.class); PendingIntent pi=PendingIntent.getBroadcast(this, 0, intent,0); //设置一个PendingIntent对象,发送广播 AlarmManager am=(AlarmManager)getSystemService(ALARM_SERVICE); //获取AlarmManager对象 // am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+3500, pi);//只执行一次 am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+3500, 10000, pi); //重复执行
<receiver android:name=".AlarmReceiver"> <intent-filter> <action android:name="cn.pocketdigi.update.alarm" /> </intent-filter> </receiver>
public class AlarmReceiver extends BroadcastReceiver { private static final String TAG = "AlarmReceiver"; @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Log.v(TAG, "收到广播"); // Intent it=new Intent(context,AlarmActivity.class); // it.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // context.startActivity(it); //收到广播后启动Activity,简单起见,直接就跳到了设置alarm的Activity //intent必须加上Intent.FLAG_ACTIVITY_NEW_TASK flag } }
取消方式:
Intent intent = new Intent("cn.pocketdigi.update.alarm"); intent.setClass(this, AlarmReceiver.class); PendingIntent pi=PendingIntent.getBroadcast(this, 0, intent,0); AlarmManager alarm=(AlarmManager)getSystemService(ALARM_SERVICE); alarm.cancel(pi);
另外一种intent方式
代码 Intent intent =new Intent(Main.this, alarmreceiver.class); intent.setAction("repeating"); PendingIntent sender=PendingIntent .getBroadcast(Main.this, 0, intent, 0); //开始时间 long firstime=SystemClock.elapsedRealtime(); AlarmManager am=(AlarmManager)getSystemService(ALARM_SERVICE); //5秒一个周期,不停的发送广播 am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP , firstime, 5*1000, sender);
作者:heimabb 发表于2013-6-20 10:35:01 原文链接
阅读:42 评论:0 查看评论