2016-08-29 75 views
0

我有一個鬧鐘應用程序。當警報觸發時,它顯示一個活動並播放鈴聲。但是,由於它在活動中播放,用戶可以關閉應用程序列表中的活動,它將退出活動。貪睡應用程序銷燬/關閉從Android應用程序列表

在這種情況下,我想暫停鬧鐘以及使用一些樣品我嘗試這樣做:

@Override 
protected void onDestroy() { 
    Log.v("MY_TAG","Snooze alarm"); 
    AlarmUtils.setAlarm(...); // this will set snooze alarm 
    super.onDestroy(); 
} 

然而,當應用從應用程序列表關閉問題onDetroy從來沒有所謂。 我仍然檢查了Android監視器,並沒有顯示我的日誌。

我想知道如何應用這種貪睡方法,或者我該如何解決這個問題?

+1

把代碼放在onPause()而不是onDestroy() –

+0

@StephanBranczyk我已經嘗試過,但它不會觸發像onDestory發生的情況 – VSB

回答

1

啊我現在明白了。

假設貪睡時間爲10分鐘,一旦鬧鐘開始響起,在10分鐘內安排下一次貪睡。

如果此人關閉鬧鐘而不是打盹鬧鐘,請關閉鬧鐘,並在10分鐘內刪除下一個鬧鐘鬧鐘。

每次一分鐘通過,而鬧鈴鳴響時,重置安排的報警在接下來的10分鐘(否則將在第9分鐘後再次聽起來這是不是你想要的)

我知道這種邏輯聽起來令人費解,但它應該做你想做的。

+0

我用這個作爲解決方法和它的工作。但似乎有這個onDestroy,我錯過了一些技巧... – VSB

+0

問題是,onDestroy()永遠不能保證被調用。這是Android特定的限制。這就是平臺的設計。用戶需要任務殺手,但他們不知道他們在問什麼。手機上真正的任務殺手只會降低操作系統的速度,因爲一次清除太多內存最終會阻塞主線程並導致手機無法響應。 –