首页 > 其他 > 详细

用service、scheduleAtFixedRate写一个后台定时执行任务

时间:2015-03-24 09:17:36      阅读:1036      评论:0      收藏:0      [点我收藏+]

上篇介绍了service及其生命周期,这里scheduleAtFixedRate介绍java api中可直接查;这里写一个后台定时执行任务的例子,直接上代码:

ScheduledThreadPoolExecutor是ThreadPoolExecutor的子类;
ThreadPoolExecutor,它可另行安排在给定的延迟后运行命令,或者定期执行命令。需要多个辅助线程时,
或者要求 ThreadPoolExecutor 具有额外的灵活性或功能时,此类要优于 Timer。一旦启用已延迟的任务就执行它,但是有关何时启用,启用后何时执行则没有任何实时保证。按照提交的先进先出 (FIFO) 顺序来启用那些被安排在同一执行时间的任务。
public class ServerO extends Service {

    private ScheduledThreadPoolExecutor mPool = null;//ScheduledThreadPoolExecutor是ThreadPoolExecutor的子类;
    private long firstDelayTime = 3000;
    private long delayTime = 10 * 60 * 1000;
    private DBMang_Order dbMang_Order;

    @Override
    public void onCreate() {
        super.onCreate();
        mPool = new ScheduledThreadPoolExecutor(1);
        dbMang_Order = DBMang_Order.getInstance(getApplicationContext());

    }
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        mPool.scheduleAtFixedRate(new Runnable() {

            @Override
            public void run() {
                //需要轮循的内容,这里查看数据是否有未确认订单,数据库这边不写了,参考《Android数据存储——SQLite数据库(模板)》http://blog.csdn.net/metis100/article/details/44408229
                ArrayList<OrderUncheck> uncheckList = dbMang_Order.query();

            }
        }, firstDelayTime, delayTime, TimeUnit.MILLISECONDS);

        return super.onStartCommand(intent, flags, startId);
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onDestroy() {

        super.onDestroy();
    }   
}

别忘了xml中设置:

 <service
            android:name="com.wangll.service.ServerO"
            android:enabled="true"
            android:exported="false" />

在Activity中启动进程:

    startService(new Intent(this, ServerO.class));

更多交流可加Android技术讨论群:71262831
扫一扫,一起坐看风云变幻。扫描下方二维码关注it达人(也可微信搜索:it达人)。
为您推送最新开发资源、分享it牛人职业发展经验:
技术分享

用service、scheduleAtFixedRate写一个后台定时执行任务

原文:http://blog.csdn.net/metis100/article/details/44574103

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!