2012-03-14 132 views
0

我有一個應用程序,用戶可以登錄。登錄需要持續。我現在所做的是在onPause中測試activity是否爲Finishing()。如果沒有,那必定意味着用戶正在離開應用程序(或者屏幕變暗,或者打電話,或者其他什麼)。現在,如果用戶在15分鐘內不回來,我想將其登錄。可以做一個postDelayed(...,15 * 60)嗎?這會在後臺執行嗎?我可以在那裏做網絡電話記錄用戶嗎?我真的有這個確定嗎?如果應用程序在這15分鐘內遇害,是否有掛鉤將用戶註銷?Android處理程序背景

+0

我不知道,如果處理/尺蠖繼續運行,如果actitiy暫停。我會將該Web連接部分移至與活動生命週期無關的服務。 – zapl 2012-03-14 20:02:26

回答

1

您的應用程序可能會在15分鐘內死亡。然而,這可能取決於設備規格,Android版本,運行的應用程序數量,運行的應用程序等等。由於這些變量,我會說依賴於您的postDelayed是不夠的,您應該使用類似AlarmManager的註冊表來註冊您的應用程序在啓動時運行註銷代碼。

如果你想要的是有每當activity被銷燬只要把你的註銷代碼在你活動的onDestroy()方法

+0

即使應用程序被殺害,該代碼是否會被執行? – 2012-03-14 20:46:39

+0

onDestroy()?是。無論何時您的應用程序被銷燬,無論您是在代碼中執行還是從系統中關閉它,都會發生這種情況。看看[這裏](http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle)瞭解Android活動生命週期。它會幫助你解決這個問題,總體而言,非常有用 – dymmeh 2012-03-14 20:48:58