导航菜单

页面标题

页面副标题

КЛ£ v1.0.0 - KeepAliveJob.java 源代码

正在查看: КЛ£ v1.0.0 应用的 KeepAliveJob.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package im.pggrnmxjgs.messenger;

import android.content.Intent;
import com.google.android.exoplayer2.upstream.DefaultLoadErrorHandlingPolicy;
import im.pggrnmxjgs.messenger.support.JobIntentService;
import java.util.concurrent.CountDownLatch;

public class KeepAliveJob extends JobIntentService {
    private static volatile CountDownLatch countDownLatch;
    private static volatile boolean startingJob;
    private static final Object sync = new Object();
    private static Runnable finishJobByTimeoutRunnable = new Runnable() {
        @Override
        public void run() {
            KeepAliveJob.finishJobInternal();
        }
    };

    public static void startJob() {
        Utilities.globalQueue.postRunnable(new Runnable() {
            @Override
            public void run() {
                if (KeepAliveJob.startingJob || KeepAliveJob.countDownLatch != null) {
                    return;
                }
                try {
                    if (BuildVars.LOGS_ENABLED) {
                        FileLog.d("starting keep-alive job");
                    }
                    synchronized (KeepAliveJob.sync) {
                        boolean unused = KeepAliveJob.startingJob = true;
                    }
                    JobIntentService.enqueueWork(ApplicationLoader.applicationContext, KeepAliveJob.class, 1000, new Intent());
                } catch (Exception e) {
                }
            }
        });
    }

    public static void finishJobInternal() {
        synchronized (sync) {
            if (countDownLatch != null) {
                if (BuildVars.LOGS_ENABLED) {
                    FileLog.d("finish keep-alive job");
                }
                countDownLatch.countDown();
            }
            if (startingJob) {
                if (BuildVars.LOGS_ENABLED) {
                    FileLog.d("finish queued keep-alive job");
                }
                startingJob = false;
            }
        }
    }

    public static void finishJob() {
        Utilities.globalQueue.postRunnable(new Runnable() {
            @Override
            public void run() {
                KeepAliveJob.finishJobInternal();
            }
        });
    }

    @Override
    protected void onHandleWork(Intent intent) {
        synchronized (sync) {
            if (startingJob) {
                countDownLatch = new CountDownLatch(1);
                if (BuildVars.LOGS_ENABLED) {
                    FileLog.d("started keep-alive job");
                }
                Utilities.globalQueue.postRunnable(finishJobByTimeoutRunnable, DefaultLoadErrorHandlingPolicy.DEFAULT_TRACK_BLACKLIST_MS);
                try {
                    countDownLatch.await();
                } catch (Throwable th) {
                }
                Utilities.globalQueue.cancelRunnable(finishJobByTimeoutRunnable);
                synchronized (sync) {
                    countDownLatch = null;
                }
                if (BuildVars.LOGS_ENABLED) {
                    FileLog.d("ended keep-alive job");
                }
            }
        }
    }
}