|
|
|
|
@ -1,9 +1,13 @@ |
|
|
|
|
package com.fongmi.android.tv; |
|
|
|
|
|
|
|
|
|
import android.app.Activity; |
|
|
|
|
import android.app.Application; |
|
|
|
|
import android.os.Bundle; |
|
|
|
|
import android.os.Handler; |
|
|
|
|
import android.os.Looper; |
|
|
|
|
|
|
|
|
|
import androidx.annotation.NonNull; |
|
|
|
|
import androidx.annotation.Nullable; |
|
|
|
|
import androidx.core.os.HandlerCompat; |
|
|
|
|
|
|
|
|
|
import com.fongmi.android.tv.ui.activity.CrashActivity; |
|
|
|
|
@ -18,6 +22,7 @@ public class App extends Application { |
|
|
|
|
private final ExecutorService executor; |
|
|
|
|
private final Handler handler; |
|
|
|
|
private static App instance; |
|
|
|
|
private Activity activity; |
|
|
|
|
|
|
|
|
|
public App() { |
|
|
|
|
instance = this; |
|
|
|
|
@ -29,6 +34,10 @@ public class App extends Application { |
|
|
|
|
return instance; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static Activity getActivity() { |
|
|
|
|
return get().activity; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static void execute(Runnable runnable) { |
|
|
|
|
get().executor.execute(runnable); |
|
|
|
|
} |
|
|
|
|
@ -50,9 +59,48 @@ public class App extends Application { |
|
|
|
|
for (Runnable r : runnable) get().handler.removeCallbacks(r); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void setActivity(Activity activity) { |
|
|
|
|
this.activity = activity; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onCreate() { |
|
|
|
|
super.onCreate(); |
|
|
|
|
CaocConfig.Builder.create().backgroundMode(CaocConfig.BACKGROUND_MODE_SILENT).errorActivity(CrashActivity.class).apply(); |
|
|
|
|
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() { |
|
|
|
|
@Override |
|
|
|
|
public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) { |
|
|
|
|
if (activity != getActivity()) setActivity(activity); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onActivityStarted(@NonNull Activity activity) { |
|
|
|
|
if (activity != getActivity()) setActivity(activity); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onActivityResumed(@NonNull Activity activity) { |
|
|
|
|
if (activity != getActivity()) setActivity(activity); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onActivityPaused(@NonNull Activity activity) { |
|
|
|
|
if (activity == getActivity()) setActivity(null); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onActivityStopped(@NonNull Activity activity) { |
|
|
|
|
if (activity == getActivity()) setActivity(null); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onActivityDestroyed(@NonNull Activity activity) { |
|
|
|
|
if (activity == getActivity()) setActivity(null); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onActivitySaveInstanceState(@NonNull Activity activity, @NonNull Bundle outState) { |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |