diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java index de6123fbf..6b1c56f51 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java @@ -17,6 +17,7 @@ import com.fongmi.android.tv.App; import com.fongmi.android.tv.R; import com.fongmi.android.tv.api.ApiConfig; import com.fongmi.android.tv.api.LiveConfig; +import com.fongmi.android.tv.api.Updater; import com.fongmi.android.tv.api.WallConfig; import com.fongmi.android.tv.bean.Func; import com.fongmi.android.tv.bean.History; @@ -42,7 +43,6 @@ import com.fongmi.android.tv.utils.Clock; import com.fongmi.android.tv.utils.Notify; import com.fongmi.android.tv.utils.Prefers; import com.fongmi.android.tv.utils.ResUtil; -import com.fongmi.android.tv.api.Updater; import com.fongmi.android.tv.utils.Utils; import com.google.common.collect.Lists; diff --git a/app/src/main/java/com/fongmi/android/tv/App.java b/app/src/main/java/com/fongmi/android/tv/App.java index 1cb129207..6d4de3214 100644 --- a/app/src/main/java/com/fongmi/android/tv/App.java +++ b/app/src/main/java/com/fongmi/android/tv/App.java @@ -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) { + } + }); } } \ No newline at end of file