Android 使用Alarm机制创建长时间在后台运行的定时任务

简介: Android 使用Alarm机制创建长时间在后台运行的定时任务

首先创建Service类 LongRunningService

public class LongRunningService extends Service {
    private static final String TAG = "LongRunningService";
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                //在这里执行具体的逻辑操作
                Log.d(TAG, "run: "+"10秒执行一次!" );
            }
        }).start();
        //获取AlarmManager的实例
        AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE);
        int anHour = 10 * 1000;
        // SystemClock.elapsedRealtime()获取系统开机至今的毫秒数
        long triggerAtTime = SystemClock.elapsedRealtime() + anHour;
        Intent i = new Intent(this,LongRunningService.class);
        PendingIntent pi = PendingIntent.getService(this,0,i,0);
        //设置一个定时任务,这里设置的一个10秒之后执行一次
        //AlarmManager.ELAPSED_REALTIME_WAKEUP 表示让定时任务的触发时间从系统开机开始算起,会唤醒CPU
        manager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP,triggerAtTime,pi);
        return super.onStartCommand(intent, flags, startId);
    }
    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
}

之后在Activity中启动定时服务

Intent intent = new Intent(this, LongRunningService.class);
startService(intent);

这样一旦启动了LongRunningService,就会在onStartCommand()方法里设定一个定时任务,这样10秒后,就会再次再次启动LongRunningService,从而也就形成了一个永久循环,保证LongRunningService的onStartCommand()方法每隔10秒就执行一次。

最后别忘了在配置清单文件中注册

<service android:name=".service.LongRunningService"/>


目录
相关文章
|
29天前
|
前端开发 编译器 Android开发
构建高效Android应用:探究Kotlin协程的异步处理机制
【4月更文挑战第2天】在现代移动应用开发中,提供流畅且响应迅速的用户体验是至关重要的。随着Android平台的发展,Kotlin语言凭借其简洁性和功能性编程的特点成为了主流选择之一。特别地,Kotlin协程作为一种新型的轻量级线程管理机制,为开发者提供了强大的异步处理能力,从而显著提升了应用程序的性能和响应速度。本文将深入探讨Kotlin协程在Android中的应用,分析其原理、实现以及如何通过协程优化应用性能。
|
4月前
|
存储 Java Android开发
Android系统升级的机制概要
Android系统升级的机制概要
44 0
|
29天前
|
API 调度 Android开发
探索Android应用程序的后台运行机制
在移动应用开发中,了解和掌握Android应用程序的后台运行机制至关重要。本文将深入探讨Android平台上应用程序的后台运行原理及其影响因素,包括后台服务、广播接收器、JobScheduler等关键组件,以及如何有效管理后台任务以提升应用性能和用户体验。
16 3
|
4月前
|
JavaScript Android开发
Cordova 后台运行 Android APP
Cordova 后台运行 Android APP
|
5月前
|
Android开发 容器
[Android]View的事件分发机制(源码解析)
[Android]View的事件分发机制(源码解析)
37 0
|
5月前
|
消息中间件 缓存 安全
android开发,使用kotlin学习消息机制Handler
android开发,使用kotlin学习消息机制Handler
84 0
|
5月前
|
安全 Android开发 Kotlin
android开发,使用kotlin学习Android权限机制
android开发,使用kotlin学习Android权限机制
41 0
|
8月前
|
Android开发 开发者
Android View 事件分发机制,看这一篇就够了(二)
Android View 事件分发机制,看这一篇就够了
|
8月前
|
Android开发
Android View 事件分发机制,看这一篇就够了(一)
Android View 事件分发机制,看这一篇就够了
|
9月前
|
Java API Android开发
Android 权限机制详解
Android 权限机制详解
76 0