簡體   English   中英

有沒有辦法准確檢測 android 中的活動何時被破壞?

[英]Is there a way to exactly detect when an activity is destroyed in android?

我正在onDestroy()中制作一個 android 應用程序,其中我需要在活動被完全破壞時觸發一些數據庫請求,如果用戶按下后退按鈕或離開應用程序本身可能會發生這種情況......即使用戶仍在活動中,應用程序也會隨機觸發......我猜這可能的原因是配置更改,但我無法為此找到合適的解決方案。

有沒有一種方法可以准確檢測用戶何時離開活動以避免任何頁面內配置更改?

我正在使用的 onDestroy() 是這樣的:

@Override
protected void onDestroy() {
   /// do smthng
   super.onDestroy();
}

任何幫助,將不勝感激!!

如果您想檢查用戶是否結束了活動,即按下回,請執行以下操作:

@override
public void onBackPressed(){

//do something before we finish the activity

super.onBackPressed();

}

如果您想檢查用戶何時進入下一個活動,然后返回到相同的活動:

@override
public void onResume(){

//do something when return back to this activity

super.onResume();

}


@override
public void onPause(){

//do something before going to another activity

super.onPause();

}

onDestroy 在活動被銷毀或完成時調用,並且不保證總是被調用,不要依賴它

我們可以通過實現ActivityLifecycleCallbacks來根據進入和退出前台的 Activity 檢查我們的應用程序是前台還是后台。

很好的參考: https://medium.com/@iamsadesh/android-how-to-detect-when-app-goes-background-foreground-fd5a4d331f8a

引用上面的文章,

@Override
public void onActivityStarted(Activity activity) {
    if (++activityReferences == 1 && !isActivityChangingConfigurations) {
        // App enters foreground
    }
}

和,

@Override
public void onActivityStopped(Activity activity) {

    isActivityChangingConfigurations = activity.isChangingConfigurations();
    if (--activityReferences == 0 && !isActivityChangingConfigurations) {
        // App enters background
    }
}

通過它我們可以確保我們的應用程序是否在前台。 在這里,您始終可以控制前台的活動,您可以根據這些活動檢查和執行邏輯。

解決:謝謝大家的回答...對我來說onStop()效果很好,無論是按下后退按鈕還是退出活動或應用程序本身,它都可以正常工作!

暫無
暫無

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

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