更新时间:2023-10-18 08:27:52
原答案:https://***.com/a/60212452/10004454根据 Android 文档推荐的方法是
Original Answer : https://***.com/a/60212452/10004454 The recommended way to do it in accordance with Android documentation is
class MyApplication : Application(), LifecycleObserver {
override fun onCreate() {
super.onCreate()
ProcessLifecycleOwner.get().lifecycle.addObserver(this);
}
fun isActivityVisible(): String {
return ProcessLifecycleOwner.get().lifecycle.currentState.name
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
fun onAppBackgrounded() {
//App in background
Log.e(TAG, "************* backgrounded")
Log.e(TAG, "************* ${isActivityVisible()}")
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
fun onAppForegrounded() {
Log.e(TAG, "************* foregrounded")
Log.e(TAG, "************* ${isActivityVisible()}")
// App in foreground
}}
在您的 gradle(应用程序)中添加:implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
In your gradle (app) add : implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
然后在运行时检查状态调用 MyApplication().isActivityVisible()
Then to check the state at runtime call MyApplication().isActivityVisible()