android 定时启动取消小例子

前端技术 2023/09/08 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);

本文地址:https://www.stayed.cn/item/23075

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。