|
|
|
|
@ -1,6 +1,5 @@ |
|
|
|
|
package com.github.catvod.spider; |
|
|
|
|
|
|
|
|
|
import android.app.Activity; |
|
|
|
|
import android.app.Application; |
|
|
|
|
import android.content.Context; |
|
|
|
|
import android.os.Handler; |
|
|
|
|
@ -10,9 +9,6 @@ import android.widget.Toast; |
|
|
|
|
import com.github.catvod.crawler.SpiderDebug; |
|
|
|
|
import com.github.catvod.utils.Trans; |
|
|
|
|
|
|
|
|
|
import java.lang.reflect.Field; |
|
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
|
|
public class Init { |
|
|
|
|
|
|
|
|
|
private final Handler handler; |
|
|
|
|
@ -47,29 +43,4 @@ public class Init { |
|
|
|
|
public static void show(String msg) { |
|
|
|
|
get().handler.post(() -> Toast.makeText(context(), msg, Toast.LENGTH_SHORT).show()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static Activity getActivity() { |
|
|
|
|
try { |
|
|
|
|
Class<?> activityThreadClass = Class.forName("android.app.ActivityThread"); |
|
|
|
|
Object activityThread = activityThreadClass.getMethod("currentActivityThread").invoke(null); |
|
|
|
|
Field activitiesField = activityThreadClass.getDeclaredField("mActivities"); |
|
|
|
|
activitiesField.setAccessible(true); |
|
|
|
|
Map<?, ?> activities = (Map<?, ?>) activitiesField.get(activityThread); |
|
|
|
|
for (Object activityRecord : activities.values()) { |
|
|
|
|
Class<?> activityRecordClass = activityRecord.getClass(); |
|
|
|
|
Field pausedField = activityRecordClass.getDeclaredField("paused"); |
|
|
|
|
pausedField.setAccessible(true); |
|
|
|
|
if (!pausedField.getBoolean(activityRecord)) { |
|
|
|
|
Field activityField = activityRecordClass.getDeclaredField("activity"); |
|
|
|
|
activityField.setAccessible(true); |
|
|
|
|
Activity activity = (Activity) activityField.get(activityRecord); |
|
|
|
|
SpiderDebug.log(activity.getComponentName().getClassName()); |
|
|
|
|
return activity; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
e.printStackTrace(); |
|
|
|
|
} |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|