AppStartTaskDispatcher.smali
.class public Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;
.super Ljava/lang/Object;
.source "AppStartTaskDispatcher.java"
# static fields
.field private static final WAITING_TIME:I = 0x2710
.field private static volatile sAppStartTaskDispatcher:Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;
# instance fields
.field private isShowLog:Z
.field private mAllTaskWaitTimeOut:J
.field private mContext:Landroid/content/Context;
.field private mCountDownLatch:Ljava/util/concurrent/CountDownLatch;
.field private mFinishTime:J
.field private mNeedWaitCount:Ljava/util/concurrent/atomic/AtomicInteger;
.field private mSortMainThreadTaskList:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/wxy/appstartfaster/d/a;",
">;"
}
.end annotation
.end field
.field private mSortTaskList:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/wxy/appstartfaster/d/a;",
">;"
}
.end annotation
.end field
.field private mSortThreadPoolTaskList:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/wxy/appstartfaster/d/a;",
">;"
}
.end annotation
.end field
.field private mStartTaskList:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/wxy/appstartfaster/d/a;",
">;"
}
.end annotation
.end field
.field private mStartTime:J
.field private mTaskChildHashMap:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap<",
"Ljava/lang/Class<",
"+",
"Lcom/wxy/appstartfaster/d/a;",
">;",
"Ljava/util/List<",
"Ljava/lang/Class<",
"+",
"Lcom/wxy/appstartfaster/d/a;",
">;>;>;"
}
.end annotation
.end field
.field private mTaskHashMap:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap<",
"Ljava/lang/Class<",
"+",
"Lcom/wxy/appstartfaster/d/a;",
">;",
"Lcom/wxy/appstartfaster/d/a;",
">;"
}
.end annotation
.end field
# direct methods
.method private constructor <init>()V
.registers 2
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
iput-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mTaskHashMap:Ljava/util/HashMap;
.line 3
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
iput-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mTaskChildHashMap:Ljava/util/HashMap;
.line 4
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mStartTaskList:Ljava/util/List;
.line 5
new-instance v0, Ljava/util/concurrent/atomic/AtomicInteger;
invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicInteger;-><init>()V
iput-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mNeedWaitCount:Ljava/util/concurrent/atomic/AtomicInteger;
.line 6
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mSortMainThreadTaskList:Ljava/util/List;
.line 7
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mSortThreadPoolTaskList:Ljava/util/List;
return-void
.end method
.method private dispatchAppStartTask()V
.registers 5
.line 1
iget-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mSortThreadPoolTaskList:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:cond_6
:goto_6
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_25
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/wxy/appstartfaster/d/a;
.line 2
invoke-virtual {v1}, Lcom/wxy/appstartfaster/d/a;->isRunOnMainThread()Z
move-result v2
if-nez v2, :cond_6
.line 3
invoke-virtual {v1}, Lcom/wxy/appstartfaster/d/a;->runOnExecutor()Ljava/util/concurrent/Executor;
move-result-object v2
new-instance v3, Lcom/sandboxol/center/appstart/AppStartTaskRunnable;
invoke-direct {v3, v1, p0}, Lcom/sandboxol/center/appstart/AppStartTaskRunnable;-><init>(Lcom/wxy/appstartfaster/d/a;Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;)V
invoke-interface {v2, v3}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V
goto :goto_6
.line 4
:cond_25
iget-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mSortMainThreadTaskList:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:cond_2b
:goto_2b
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_46
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/wxy/appstartfaster/d/a;
.line 5
invoke-virtual {v1}, Lcom/wxy/appstartfaster/d/a;->isRunOnMainThread()Z
move-result v2
if-eqz v2, :cond_2b
.line 6
new-instance v2, Lcom/sandboxol/center/appstart/AppStartTaskRunnable;
invoke-direct {v2, v1, p0}, Lcom/sandboxol/center/appstart/AppStartTaskRunnable;-><init>(Lcom/wxy/appstartfaster/d/a;Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;)V
invoke-virtual {v2}, Lcom/sandboxol/center/appstart/AppStartTaskRunnable;->run()V
goto :goto_2b
:cond_46
return-void
.end method
.method public static getInstance()Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;
.registers 2
.line 1
sget-object v0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->sAppStartTaskDispatcher:Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;
if-nez v0, :cond_17
.line 2
const-class v0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;
monitor-enter v0
.line 3
:try_start_7
sget-object v1, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->sAppStartTaskDispatcher:Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;
if-nez v1, :cond_12
.line 4
new-instance v1, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;
invoke-direct {v1}, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;-><init>()V
sput-object v1, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->sAppStartTaskDispatcher:Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;
.line 5
:cond_12
monitor-exit v0
goto :goto_17
:catchall_14
move-exception v1
monitor-exit v0
:try_end_16
.catchall {:try_start_7 .. :try_end_16} :catchall_14
throw v1
.line 6
:cond_17
:goto_17
sget-object v0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->sAppStartTaskDispatcher:Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;
return-object v0
.end method
.method private ifNeedWait(Lcom/wxy/appstartfaster/d/a;)Z
.registers 3
.line 1
invoke-virtual {p1}, Lcom/wxy/appstartfaster/d/a;->isRunOnMainThread()Z
move-result v0
if-nez v0, :cond_e
invoke-virtual {p1}, Lcom/wxy/appstartfaster/d/a;->needWait()Z
move-result p1
if-eqz p1, :cond_e
const/4 p1, 0x1
goto :goto_f
:cond_e
const/4 p1, 0x0
:goto_f
return p1
.end method
.method private initRealSortTask()V
.registers 4
.line 1
iget-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mSortTaskList:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_6
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_24
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/wxy/appstartfaster/d/a;
.line 2
invoke-virtual {v1}, Lcom/wxy/appstartfaster/d/a;->isRunOnMainThread()Z
move-result v2
if-eqz v2, :cond_1e
.line 3
iget-object v2, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mSortMainThreadTaskList:Ljava/util/List;
invoke-interface {v2, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_6
.line 4
:cond_1e
iget-object v2, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mSortThreadPoolTaskList:Ljava/util/List;
invoke-interface {v2, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_6
:cond_24
return-void
.end method
.method private printSortTask()V
.registers 5
.line 1
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v1, "\u5f53\u524d\u6240\u6709\u4efb\u52a1\u6392\u597d\u7684\u987a\u5e8f\u4e3a\uff1a"
.line 2
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/4 v1, 0x0
.line 3
:goto_c
iget-object v2, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mSortTaskList:Ljava/util/List;
invoke-interface {v2}, Ljava/util/List;->size()I
move-result v2
if-ge v1, v2, :cond_35
.line 4
iget-object v2, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mSortTaskList:Ljava/util/List;
invoke-interface {v2, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/wxy/appstartfaster/d/a;
invoke-virtual {v2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v2
if-nez v1, :cond_2a
.line 5
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_32
:cond_2a
const-string v3, "---\uff1e"
.line 6
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 7
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:goto_32
add-int/lit8 v1, v1, 0x1
goto :goto_c
.line 8
:cond_35
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lcom/sandboxol/center/appstart/AppStartTaskLogUtil;->showLog(Ljava/lang/String;)V
return-void
.end method
# virtual methods
.method public addAppStartTask(Lcom/wxy/appstartfaster/d/a;)Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;
.registers 3
if-eqz p1, :cond_13
.line 1
iget-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mStartTaskList:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 2
invoke-direct {p0, p1}, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->ifNeedWait(Lcom/wxy/appstartfaster/d/a;)Z
move-result p1
if-eqz p1, :cond_12
.line 3
iget-object p1, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mNeedWaitCount:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {p1}, Ljava/util/concurrent/atomic/AtomicInteger;->getAndIncrement()I
:cond_12
return-object p0
.line 4
:cond_13
new-instance p1, Ljava/lang/RuntimeException;
const-string v0, "addAppStartTask() \u4f20\u5165\u7684appStartTask\u4e3anull"
invoke-direct {p1, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public await()V
.registers 6
.line 1
:try_start_0
iget-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mCountDownLatch:Ljava/util/concurrent/CountDownLatch;
if-eqz v0, :cond_3a
.line 2
iget-wide v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mAllTaskWaitTimeOut:J
const-wide/16 v2, 0x0
cmp-long v4, v0, v2
if-nez v4, :cond_10
const-wide/16 v0, 0x2710
.line 3
iput-wide v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mAllTaskWaitTimeOut:J
.line 4
:cond_10
iget-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mCountDownLatch:Ljava/util/concurrent/CountDownLatch;
iget-wide v1, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mAllTaskWaitTimeOut:J
sget-object v3, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invoke-virtual {v0, v1, v2, v3}, Ljava/util/concurrent/CountDownLatch;->await(JLjava/util/concurrent/TimeUnit;)Z
.line 5
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v0
iget-wide v2, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mStartTime:J
sub-long/2addr v0, v2
iput-wide v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mFinishTime:J
.line 6
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v1, "\u542f\u52a8\u8017\u65f6\uff1a"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-wide v1, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mFinishTime:J
invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lcom/sandboxol/center/appstart/AppStartTaskLogUtil;->showLog(Ljava/lang/String;)V
goto :goto_47
.line 7
:cond_3a
new-instance v0, Ljava/lang/RuntimeException;
const-string/jumbo v1, "\u5728\u8c03\u7528await()\u4e4b\u524d\uff0c\u5fc5\u987b\u5148\u8c03\u7528start()"
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_43
.catch Ljava/lang/InterruptedException; {:try_start_0 .. :try_end_43} :catch_43
:catch_43
move-exception v0
.line 8
invoke-virtual {v0}, Ljava/lang/InterruptedException;->printStackTrace()V
:goto_47
return-void
.end method
.method public isShowLog()Z
.registers 2
.line 1
iget-boolean v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->isShowLog:Z
return v0
.end method
.method public markAppStartTaskFinish(Lcom/wxy/appstartfaster/d/a;)V
.registers 4
.line 1
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v1, "\u4efb\u52a1\u5b8c\u6210\u4e86\uff1a"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lcom/sandboxol/center/appstart/AppStartTaskLogUtil;->showLog(Ljava/lang/String;)V
.line 2
invoke-direct {p0, p1}, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->ifNeedWait(Lcom/wxy/appstartfaster/d/a;)Z
move-result p1
if-eqz p1, :cond_2d
.line 3
iget-object p1, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mCountDownLatch:Ljava/util/concurrent/CountDownLatch;
invoke-virtual {p1}, Ljava/util/concurrent/CountDownLatch;->countDown()V
.line 4
iget-object p1, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mNeedWaitCount:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {p1}, Ljava/util/concurrent/atomic/AtomicInteger;->getAndDecrement()I
:cond_2d
return-void
.end method
.method public setAllTaskWaitTimeOut(J)Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;
.registers 3
.line 1
iput-wide p1, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mAllTaskWaitTimeOut:J
return-object p0
.end method
.method public setContext(Landroid/content/Context;)Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;
.registers 2
.line 1
iput-object p1, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mContext:Landroid/content/Context;
return-object p0
.end method
.method public setNotifyChildren(Lcom/wxy/appstartfaster/d/a;)V
.registers 4
.line 1
iget-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mTaskChildHashMap:Ljava/util/HashMap;
invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object p1
invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/util/List;
if-eqz p1, :cond_30
.line 2
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v0
if-lez v0, :cond_30
.line 3
invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p1
:goto_18
invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_30
invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Class;
.line 4
iget-object v1, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mTaskHashMap:Ljava/util/HashMap;
invoke-virtual {v1, v0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/wxy/appstartfaster/d/a;
invoke-virtual {v0}, Lcom/wxy/appstartfaster/d/a;->Notify()V
goto :goto_18
:cond_30
return-void
.end method
.method public setShowLog(Z)Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;
.registers 2
.line 1
iput-boolean p1, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->isShowLog:Z
return-object p0
.end method
.method public start()Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;
.registers 4
.line 1
iget-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mContext:Landroid/content/Context;
if-eqz v0, :cond_3f
.line 2
invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
move-result-object v0
invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;
move-result-object v1
if-ne v0, v1, :cond_37
.line 3
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v0
iput-wide v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mStartTime:J
.line 4
iget-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mStartTaskList:Ljava/util/List;
iget-object v1, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mTaskHashMap:Ljava/util/HashMap;
iget-object v2, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mTaskChildHashMap:Ljava/util/HashMap;
invoke-static {v0, v1, v2}, Lcom/wxy/appstartfaster/e/a;->a(Ljava/util/List;Ljava/util/HashMap;Ljava/util/HashMap;)Ljava/util/List;
move-result-object v0
iput-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mSortTaskList:Ljava/util/List;
.line 5
invoke-direct {p0}, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->initRealSortTask()V
.line 6
invoke-direct {p0}, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->printSortTask()V
.line 7
new-instance v0, Ljava/util/concurrent/CountDownLatch;
iget-object v1, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mNeedWaitCount:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicInteger;->get()I
move-result v1
invoke-direct {v0, v1}, Ljava/util/concurrent/CountDownLatch;-><init>(I)V
iput-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mCountDownLatch:Ljava/util/concurrent/CountDownLatch;
.line 8
invoke-direct {p0}, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->dispatchAppStartTask()V
return-object p0
.line 9
:cond_37
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "start\u65b9\u6cd5\u5fc5\u987b\u5728\u4e3b\u7ebf\u7a0b\u8c03\u7528"
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.line 10
:cond_3f
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "context\u4e3anull\uff0c\u8c03\u7528start()\u65b9\u6cd5\u524d\u5fc5\u987b\u8c03\u7528setContext()\u65b9\u6cd5"
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.end method