2012-07-05 122 views
0

我有一個活動,有時被系統作爲對被調用的PowerManager.goToSleep(...)的響應而銷燬。行爲不一致,我無法弄清楚這個原因。當PowerManager.goToSleep被調用時,活動被破壞

這裏是我的活動的onCreate相關的代碼是代碼的最相關的部分:

protected void onCreate(Bundle bundle) { 
     super.onCreate(bundle); 

     requestWindowFeature(android.view.Window.FEATURE_NO_TITLE); 

     IntentFilter userprsentfilter = new IntentFilter(Intent.ACTION_USER_PRESENT); 
     mUserPresentReceiver = new UserPresentReceiver(); 
     registerReceiver(mUserPresentReceiver,userprsentfilter); 

     Log.d(TAG, "created."); 
    } 

    protected void onDestroy() { 
     Log.d(TAG, "finished."); 
    } 

某處,在某些遠程服務有時也由活動本身,

PowerManager的。 goToSleep(SystemClock.uptimeMillis())

被調用導致活動被破壞。

任何人都可以請解釋一下,爲什麼當PowerManager.goToSleep被調用時,系統會嘗試有時銷燬一個活動?另外,是否有辦法確保或者降低系統被破壞的可能性?我可以肯定地說,發生這種情況時資源並不稀缺。

+0

你能說一句話嗎?你怎麼稱呼'goToSleep'方法? http://stackoverflow.com/questions/5710971/android-what-permissions-required-to-call-powermanager-gotosleepn-put-device-i – greenoldman 2012-10-05 21:20:03

回答

3

所有Android應用程序隨時都可能被關閉。當應用程序背景消失,系統資源消耗過多或電話休眠時,可能會發生這種情況。你不能(也不應該試圖)改變這種行爲:它是有目的並且有很好的理由。

如果您在這些情況下需要繼續運行操作,則需要將其作爲服務來實現。即使手機正在睡眠,這也可以使其運行。

相關問題