Android之创建定时任务
来源:互联网 发布:潘多拉优化中心 编辑:程序博客网 时间:2024/06/05 14:23
核心代码及思想
setContentView(R.layout.activity_main); //设置一个任务十分钟以后执行 AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); long triggerAtTime = SystemClock.elapsedRealtime() + 10*1000; //第一个参数整型参数,用于指定AlarmManager的工作类型 /** * 有四种值可以选 * ELAPSED_REALTIME 让定时任务的触发时间从系统开机算起,但不会唤醒CPU * ELAPSED_REALTIME_WAKEUP 让定时任务的触发时间从系统开机算起,会唤醒CPU * RTC 定时任务的触发时间是从1970年1月1日算起,但不会唤醒CPU * RTC_WAKEUP 定时任务的触发时间是从1970年1月1日算起,会唤醒CPU * 使用SystemClock.elapsedRealtime()方法可以获取系统开机至今所经历的时间的毫秒数 * 使用System.currnetTimeMillis()方法可以获取到1970年1月1日0点至今天所经历的毫秒数 */ //第二个参数 就是定时任务触发的时间,以毫秒为单位 //第三个参数 我们一般会调用getService()方法或者getBroadcast()方法获取一个能够执行服务 // 或者广播的Pending-Intent. 这样当定时任务被触发的时候,服务的onStartCommand()方法 // 或者广播的onReceive()方法就可以执行 manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,triggerAtTime, pendingIntent);
MainActivity.java
package com.sdutacm.alarm;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Intent intent = new Intent(this,LongRunningService.class); startActivity(intent); }}
LongRunningService.java
package com.sdutacm.alarm;import android.app.AlarmManager;import android.app.PendingIntent;import android.app.Service;import android.content.Intent;import android.os.IBinder;import android.os.SystemClock;import android.support.annotation.Nullable;/** * Created by bummer on 2017/8/10. */public class LongRunningService extends Service { @Nullable @Override public IBinder onBind(Intent intent) { return null; } @Override public int onStartCommand(final Intent intent, int flags, int startId) { new Thread(new Runnable() { @Override public void run() { } }).start(); AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE); int anHour = 60*60*1000; //这是一小时的毫秒数 long triggerAtTime = SystemClock.elapsedRealtime() + anHour; Intent i = new Intent(this,LongRunningService.class); PendingIntent pi = PendingIntent.getService(this,0,i,0); manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,triggerAtTime,pi); return super.onStartCommand(intent, flags, startId); }}
阅读全文
0 0
- Android之创建定时任务
- android创建定时任务
- Android---创建定时任务
- quartz任务定时任务创建
- mysql创建定时任务
- oracle 创建定时任务
- oracle创建定时任务
- mysql创建定时任务
- mysql创建定时任务
- mysql创建定时任务
- mysql 定时任务创建
- 创建定时任务
- mysql创建定时任务
- mysql创建定时任务
- mysql创建定时任务
- mysql创建定时任务
- ORACLE创建定时任务
- mysql创建定时任务
- 关于call与apply的前世今生
- [hdu 1260] Tickets [DP]
- 文章标题
- Java虚拟机垃圾回收调优
- Linux设备驱动编程之内存与I/O操作
- Android之创建定时任务
- 扫雷JavaSE+控制台
- MUI框架默认全局不可复制
- 线段树_初步
- stm32串口发送16进制字符和16进制数的区别和具体实现方法
- 阿里Druid
- 仿IOS效果-ToggleButton
- Mysterious Bacteria 素因子分解(唯一分解定理)
- 关于回调注销问题的总结