首页 > 系统 > Android > 正文

android 定时启动/取消小例子

2019-10-24 20:45:06
字体:
来源:转载
供稿:网友
本文为大家讲解下android实现定时启动/取消的具体实现方式,感兴趣的朋友可以参考下哈
 
复制代码代码如下:

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表