2016-08-29 13 views
0

私は目覚まし時計アプリケーションを持っています。アラームがトリガされると、アクティビティが表示され、リングが再生されます。ただし、アクティビティ内で再生されているため、ユーザーはアプリケーションリストからアクティビティを終了し、アクティビティを終了できます。アプリケーションは、アプリケーションの一覧から閉じているときに問題がonDetroyが呼び出されることはありませんがアプリケーションのスヌーズアンドロイドアプリケーションリストから破棄/閉じる

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

:この状況で

は、私はこれを試してみましたいくつかのサンプルを使用してアラームとスヌーズします。 まだAndroidモニターをチェックしても、ログは表示されません。

私はこのスヌーズメソッドをどのように適用できますか、またはこれをどのように修正できますか?

+1

onDestroy()の代わりにonPause()の中にコードを入れてください。 –

+0

@StephanBranczyk onDestoryの場合と同じようにトリガーしませんが、私はこれを試しました。 – VSB

答えて

1

ああ私は今理解しています。

スヌーズ時間が10分であると仮定すると、アラームが鳴り始めるとすぐに10分後にスヌーズをスケジュールします。

スヌーズの代わりにアラームをオフにした場合は、サウンドをオフにし、10分後に次のスヌーズアラームも削除します。

分は、アラームが鳴っている間に通るたびに、次の10分(それ以外の場合は、あなたが望むものではありませんその9分後にもう一度鳴ります)

私は知っているが、このロジックが複雑な音を予定してアラームをリセットしかし、それはあなたが望むことをするはずです。

+0

これを回避策として使用しました。しかし、それは私が逃したこのonDestroyでいくつかのトリックがあるようです... – VSB

+0

問題はonDestroy()が呼び出されることは決してありません。これはAndroid固有の制限です。プラットフォームの設計方法です。ユーザーはタスクキラーを望んでいるが、何を求めているのか分からない。一度に多くのメモリをクリアすると、メインスレッドがブロックされ、電話が応答しなくなる可能性があるため、電話機の実際のタスクキラーはOSの速度を低下させるだけです。 –

関連する問題