欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android 定时启动\取消小例子

程序员文章站 2024-02-01 23:28:10
复制代码 代码如下: intent intent = new intent("cn.pocketdigi.update.alarm"); intent.setclass(t...
复制代码 代码如下:

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);