Android之创建定时任务
2017-08-10 09:52
351 查看
核心代码及思想
MainActivity.java
LongRunningService.java
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); } }
相关文章推荐
- Android---创建定时任务
- android创建定时任务
- Android创建定时和周期任务
- Android开发之定时任务的创建
- linux服务器对定时任务的创建、查看与取消
- linux下创建定时任务 执行删除某文件夹下所有
- crontab创建定时任务执行mapreduce,并将输出Load到数据库
- 99、Android中定时执行任务的3种实现方法
- oracle创建定时任务
- Mysql 创建定时任务
- 测试脚本定时执行(即:创建定时任务)
- android: 后台执行的定时任务
- mysql创建定时任务
- sqlserver通过脚本创建定时任务_SQL技巧
- mysql创建定时任务
- Android中后台定时任务实现,即时数据同步问题思考
- sqlserver通过脚本创建定时任务
- Ubuntu上搭建android BSP的开发编译环境 && 设置定时编译任务
- 使用DBMS_JOB包创建ORACLE定时任务
- Android学习之定时执行后台任务