导航菜单

页面标题

页面副标题

Tasker v6.6.3 - IntentServiceParallel.java 源代码

正在查看: Tasker v6.6.3 应用的 IntentServiceParallel.java JAVA 源代码文件

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


package com.joaomgcd.taskerm.util;

import android.app.Service;
import android.content.Intent;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
import android.util.Log;
import cyanogenmod.app.ProfileManager;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicInteger;

public abstract class IntentServiceParallel extends Service {
    private final String i;
    private final Handler q;
    private AtomicInteger r;
    private Integer s;
    private final vj.j t;

    public IntentServiceParallel(String str) {
        jk.p.i(str, ProfileManager.EXTRA_PROFILE_NAME);
        this.i = str;
        this.q = new Handler(Looper.getMainLooper());
        this.r = new AtomicInteger(0);
        this.t = vj.k.a(new ik.a() {
            @Override
            public final Object e() {
                ExecutorService f;
                f = IntentServiceParallel.f(IntentServiceParallel.this);
                return f;
            }
        });
    }

    public static final ExecutorService f(final IntentServiceParallel intentServiceParallel) {
        return Executors.newCachedThreadPool(new ThreadFactory() {
            @Override
            public final Thread newThread(Runnable runnable) {
                Thread g;
                g = IntentServiceParallel.g(IntentServiceParallel.this, runnable);
                return g;
            }
        });
    }

    public static final Thread g(IntentServiceParallel intentServiceParallel, Runnable runnable) {
        return new Thread(runnable, "IntentServiceParallel" + intentServiceParallel.i);
    }

    private final ExecutorService h() {
        return (ExecutorService) this.t.getValue();
    }

    public static final void k(final IntentServiceParallel intentServiceParallel, Intent intent) {
        Handler handler;
        Runnable runnable;
        try {
            try {
                intentServiceParallel.j(intent);
                handler = intentServiceParallel.q;
                runnable = new Runnable() {
                    @Override
                    public final void run() {
                        IntentServiceParallel.m(IntentServiceParallel.this);
                    }
                };
            } catch (RuntimeException e) {
                intentServiceParallel.q.post(new Runnable() {
                    @Override
                    public final void run() {
                        IntentServiceParallel.l(e);
                    }
                });
                handler = intentServiceParallel.q;
                runnable = new Runnable() {
                    @Override
                    public final void run() {
                        IntentServiceParallel.m(IntentServiceParallel.this);
                    }
                };
            }
            handler.post(runnable);
        } catch (Throwable th2) {
            intentServiceParallel.q.post(new Runnable() {
                @Override
                public final void run() {
                    IntentServiceParallel.m(IntentServiceParallel.this);
                }
            });
            throw th2;
        }
    }

    public static final void m(IntentServiceParallel intentServiceParallel) {
        if (intentServiceParallel.r.decrementAndGet() > 0) {
            return;
        }
        intentServiceParallel.n(intentServiceParallel.s);
    }

    private final void n(Integer num) {
        Log.v("IntentServiceParallel", "Stopping with " + num + ";");
        if (num != null) {
            stopSelf(num.intValue());
        } else {
            stopSelf();
        }
    }

    public Void i(Intent intent) {
        jk.p.i(intent, "intent");
        return null;
    }

    protected abstract void j(Intent intent);

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

    @Override
    public void onDestroy() {
        super.onDestroy();
        h().shutdown();
    }

    @Override
    public void onStart(final Intent intent, int i) {
        if (intent == null) {
            return;
        }
        int addAndGet = this.r.addAndGet(1);
        this.s = Integer.valueOf(i);
        Log.v("IntentServiceParallel", "Started with " + i + "; Current job count is " + addAndGet + ".");
        h().submit(new Runnable() {
            @Override
            public final void run() {
                IntentServiceParallel.k(IntentServiceParallel.this, intent);
            }
        });
    }

    @Override
    public int onStartCommand(Intent intent, int i, int i2) {
        onStart(intent, i2);
        return 2;
    }

    public static final void l(RuntimeException runtimeException) {
        throw runtimeException;
    }
}