惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
D
DataBreaches.Net
博客园 - 三生石上(FineUI控件)
博客园_首页
T
Tailwind CSS Blog
美团技术团队
Hugging Face - Blog
Hugging Face - Blog
博客园 - 叶小钗
大猫的无限游戏
大猫的无限游戏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
云风的 BLOG
云风的 BLOG
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 聂微东
S
SegmentFault 最新的问题
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
N
Netflix TechBlog - Medium
Jina AI
Jina AI
WordPress大学
WordPress大学
U
Unit 42
J
Java Code Geeks
Blog — PlanetScale
Blog — PlanetScale
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Cloudflare Blog

博客园 - MSTK

PCB检测算法YOLO-EMAC(2) PCB检测算法YOLO-EMAC(1) Android Studio提高Build速度 Android创建LiteOrmManager类(4) DecoView的使用 Android创建LiteOrmManager类(3) Android创建LiteOrmManager类(2) Android创建LiteOrmManager类(1) Android使用Snackbar Unable to add window -- token null is not valid; is your activity running? Android Studio集成通义灵码 MonoDETR(2) MonoDETR(1) The color "XXX" in values has no declaration in the base values folder; this can lead to crashes when the resource is queried in a configuration that does not match this qualifier LiteORM的使用(2) LiteORM的使用(1) 使用AlarmManager实现APP保活(1) CEC2017的30个函数 使用双进程实现Android APP保活 Process finished with exit code 137 (interrupted by signal 9: SIGKILL) GIT RE-BASIN: MERGING MODELS MODULO PERMUTATION SYMMETRIES (1) MMpretrain使用Tiny ImageNet数据集 Ubuntu使用dd命令实现硬盘级复制 PyCharm debug collecting data...
使用AlarmManager实现APP保活(2)
MSTK · 2025-04-02 · via 博客园 - MSTK

Alarm_Receiver的代码如下:

public class Alarm_Receiver extends BroadcastReceiver {
    private boolean is_local_service_running;
    private boolean is_remote_service_running;
    private Context context;

    @Override
    public void onReceive(Context context, Intent intent) {
        this.context = context;
        try {
            do_something();
        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
        // 设置下一次唤醒
        schedule_alarm(context);
    }

    private void do_something() throws ClassNotFoundException {
    ...
    }
}

Alarm_Receiver继承自BroadcastReceiver,在onReceive()方法中,调用要执行的任务,然后用schedule_alarm()方法设置下一次唤醒.

在Application类的onCreate()方法里面,调用Alarm_Receiver类的schedule_alarm()方法,开始第一次调用:

Alarm_Scheduler.schedule_alarm(this);

这样,就可以循环调用下去.