前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java +安卓 定时任务

Java +安卓 定时任务

作者头像
方志朋
发布2022-11-30 09:10:23
9580
发布2022-11-30 09:10:23
举报
1.android 自带闹钟定时任务

安卓闹钟可以配合广播来实现(不推荐),系统资源浪费,安卓系统在5.0以后的定时 任务貌似触发时间不准了,因为了为了省电。

代码语言:javascript
复制
//获取系统闹钟
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent intent = new Intent(ReportDetailsActivity.this, ReportDetailsActivity.MyReceiver.class);
pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0);
//开启定时任务
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 1000, 5 * 1000, pendingIntent);

记得在manifeast 文件配置该广播

代码语言:javascript
复制
public static class MyReceiver extends BroadcastReceiver {

       @Override
       public void onReceive(Context context, Intent intent) {
            if (bo > 0) {
                if (bo > 240) {//刷票
                    handler.sendEmptyMessage(3);//弹窗警告 刷票
                } else {
                    handler.sendEmptyMessage(2);
                }
           }

        }
    }

在OnDestroy()中取消闹钟

代码语言:javascript
复制
 @Override
protected void onDestroy() {
    alarmManager.cancel(pendingIntent);
}
2.开启Thread

睡5s中去定时操作任务。

代码语言:javascript
复制
class MyRunnable  implements Runnable{

        @Override
        public void run() {
            while (isLoop){
                try {

                    if (bo > 0) {
                        if (bo > 240) {//刷票
                            handler.sendEmptyMessage(3);//弹窗警告 刷票
                        } else {
                            handler.sendEmptyMessage(2);
                        }
                    }
                    Thread.sleep(5000);
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        }
    }

在onCreate()方法中开启:

代码语言:javascript
复制
loopThread=new Thread(new MyRunnable());
loopThread.start();

在页面销毁时终止掉该Thread

代码语言:javascript
复制
isLoop=false;
loopThread.interrupt();
3. 使用timer类。

开启timer

代码语言:javascript
复制
 Timer timer=new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
            //TODO ...

            }
        },new Date(),5000);

终止timer

代码语言:javascript
复制
  timer.cancel();

以上三种定时任务除了第一种不要随便使用外,推荐使用第三种和第二种。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-07-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.android 自带闹钟定时任务
  • 2.开启Thread
  • 3. 使用timer类。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档