אם זה מעניין אותך זה הפונקציה:
.method private checkRecentTask()V
.registers 10
code
Code
.line 1192
iget-object v0, p0, Lcom/android/server/wm/RecentTasks;->mService:Lcom/android/server/wm/ActivityTaskManagerService;
iget-object v0, v0, Lcom/android/server/wm/ActivityTaskManagerService;->mContext:Landroid/content/Context;
iget-object v1, p0, Lcom/android/server/wm/RecentTasks;->mService:Lcom/android/server/wm/ActivityTaskManagerService;
iget-object v1, v1, Lcom/android/server/wm/ActivityTaskManagerService;->mContext:Landroid/content/Context;
const-string v1, "activity"
invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/app/ActivityManager;
.line 1194
.local v0, "mAm":Landroid/app/ActivityManager;
const/16 v1, 0xa
.line 1195
.local v1, "minNumTasksToQuery":I
:try_start_12
invoke-static {}, Landroid/app/ActivityManager;->getMaxRecentTasksStatic()I
move-result v2
invoke-static {v1, v2}, Ljava/lang/Math;->max(II)I
move-result v2
.line 1196
.local v2, "numTasksToQuery":I
const/4 v3, 0x3
.line 1198
.local v3, "flag":I
invoke-virtual {v0, v2, v3}, Landroid/app/ActivityManager;->getRecentTasks(II)Ljava/util/List;
move-result-object v4
iput-object v4, p0, Lcom/android/server/wm/RecentTasks;->tasks2:Ljava/util/List;
.line 1199
invoke-interface {v4}, Ljava/util/List;->size()I
move-result v4
const/4 v5, 0x3
if-le v4, v5, :cond_64
.line 1200
const/4 v4, 0x3
.local v4, "i":I
:goto_29
iget-object v5, p0, Lcom/android/server/wm/RecentTasks;->tasks2:Ljava/util/List;
invoke-interface {v5}, Ljava/util/List;->size()I
move-result v5
if-ge v4, v5, :cond_64
.line 1201
iget-object v5, p0, Lcom/android/server/wm/RecentTasks;->tasks2:Ljava/util/List;
invoke-interface {v5, v4}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v5
check-cast v5, Landroid/app/ActivityManager$RecentTaskInfo;
.line 1202
.local v5, "info":Landroid/app/ActivityManager$RecentTaskInfo;
if-eqz v5, :cond_61
.line 1203
const-string v6, "kenTestTag"
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v8, "removeTask....."
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
iget-object v8, v5, Landroid/app/ActivityManager$RecentTaskInfo;->realActivity:Landroid/content/ComponentName;
invoke-virtual {v8}, Landroid/content/ComponentName;->getPackageName()Ljava/lang/String;
move-result-object v8
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v7
invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 1204
iget-object v6, p0, Lcom/android/server/wm/RecentTasks;->mService:Lcom/android/server/wm/ActivityTaskManagerService;
iget v7, v5, Landroid/app/ActivityManager$RecentTaskInfo;->persistentId:I
invoke-virtual {v6, v7}, Lcom/android/server/wm/ActivityTaskManagerService;->removeTask(I)Z
:try_end_61
.catch Ljava/lang/Exception; {:try_start_12 .. :try_end_61} :catch_65
.line 1200
.end local v5 # "info":Landroid/app/ActivityManager$RecentTaskInfo;
:cond_61
add-int/lit8 v4, v4, 0x1
goto :goto_29
.line 1210
.end local v1 # "minNumTasksToQuery":I
.end local v2 # "numTasksToQuery":I
.end local v3 # "flag":I
.end local v4 # "i":I
:cond_64
goto :goto_6d
.line 1208
:catch_65
move-exception v1
.line 1209
.local v1, "e":Ljava/lang/Exception;
const-string v2, "ActivityTaskManager"
const-string v3, "Failed to get recent tasks"
invoke-static {v2, v3, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 1211
.end local v1 # "e":Ljava/lang/Exception;
:goto_6d
return-void
.end method