1

我正在尋找一種方法來檢測我的Android應用已經轉到後臺backgrounding,所以無論哪個Activity是在按下Home鍵運行(或者在堆棧中的最後一項活動返回鍵),然後一個指定的函數將被調用。檢測應用程序與智能

onPause()onStop()無法區分替換當前應用程序的新活動和應用程序正在進行後臺操作,因此我正在尋求建議,以確定此問題必須包含哪些附加測試。

+0

所以基本上,你要當用戶離開你的活動主屏幕來檢測? – inazaruk 2011-06-05 21:15:49

+0

是的,就是這樣。 – KomodoDave 2011-06-05 21:52:51

+0

你能簡要描述你爲什麼要這樣嗎? – inazaruk 2011-06-05 21:54:54

回答

2

使用的服務,如其他人所說,是爲了做正確的事。

廣義上說,不同的活動,讓您的應用程序都應該綁定到服務在他們onResume()方法。他們應該從onPause()的服務中解除綁定。

當所有先前連接的客戶端已斷開連接時,您的服務的onUnbind()方法將被調用,這將是您放棄藍牙連接的地方。

有關服務的詳細信息,並從活動結合他們在http://developer.android.com/reference/android/app/Service.html

+0

Fab,感謝您的詳細信息Nik,非常感謝! – KomodoDave 2011-06-06 08:37:29

+0

從http://developer.android.com/guide/components/bound-services.html: **你應該平時不能結合和您的活動的的onResume(),並在onPause()**在解除綁定,因爲這些回調發生在每個生命週期轉換中,您應該將在這些轉換中發生的處理保持在最低水平。另外,如果應用程序中的多個活動綁定到相同的服務,並且這兩個活動之間存在轉換,則可能會因爲當前活動在下一個綁定(在恢復期間)之前解除綁定(在暫停期間)而被破壞並重新創建。 – Mannaz 2012-10-01 09:40:15