簡體   English   中英

如何檢測Android應用程序何時最小化?

[英]How to detect when an Android application is minimized?

如何檢測Android應用程序何時進入后台? onPause()或onUserLeaveHint()可以工作,但在更改方向或顯示其他活動時也會調用它。

如果方向改變,應用程序將再次調用生命周期,這意味着從oncreate

您可以通過將以下內容寫入清單的代碼來避免它

 <activity
      android:name=""
      android:configChanges="orientation|keyboardHidden|screenLayout|screenSize"
      android:label="@string/app_name" />

這告訴系統當方向改變或者keyboardHidden或screenLayout改變時,我將自己處理它,無需重新創建它。

然后在暫停時編寫代碼

試試這個

 @Override
    protected void onUserLeaveHint() 
   { 
        // When user presses home page
        Log.v(TAG, "Home Button Pressed");
        super.onUserLeaveHint();
    }

有關詳細信息: https//developer.android.com/reference/android/app/Activity.html#onUserLeaveHint()

明確的答案是OP問題的解決方法。 對於尋求答案的我們其他人,您可以使用Android架構組件實現這一目標

import android.arch.lifecycle.LifecycleObserver;

class OurApplication extends Application implements LifecycleObserver {

    @Override
    public void onCreate() {
        super.onCreate();
        ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    public void onAppBackgrounded() {
        Logger.localLog("APP BACKGROUNDED");
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    public void onAppForegrounded() {
        Logger.localLog("APP FOREGROUNDED");
    }
}

並記得更新清單文件。 <application>標簽設置android:name=".OurApplication"屬性

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM