私は、押されると、私のウィジェットを更新するCountDownTimerを開始するブロードキャストを送信し、最後にアラームを再生するウィジェットを持っています。これはエミュレータで美しく動作します。CountDownTimerが実行されて完了するようにするにはどうすればよいですか?
私の電話では、それは別の話です。私の携帯電話はリソースが限られているため、プロセスが定期的に抹消されてしまいます。もちろんCountDownTimerが私のウィジェットを更新しないということです。
将来的に確実に行う唯一の方法は、システムレベルのアラームを設定するため、AlarmManagerを使用することです。しかし、文書では、ダニのために使用するはずがないと述べています。しかし、あなたが使用する可能性の高いものは任意にシャットダウンされる可能性があるので、実際に私たちに多くの選択肢を与えているわけではありません。
私の質問は、CountDownTimerがティックを保ち、最後にonFinish()を呼び出すかどうか、あるいは単にドロップしてAlarmManagerに切り替えてそれを「誤用」する必要があるかどうかです。そのことを確認し、終了することを保証する他のオプションも歓迎されます。
私は、onUpdate()を呼び出すOSに頼ることはできません。なぜなら、30分ごとに速くなるわけでもなく、ほとんどの場合ウィジェットが何もしないからです。それがクリックされたときに、ほんの数分の間毎秒刻々と変化する。活動のOnCreateの
Intent intent = new Intent(this, DummyService.class);
startService(intent);
で
これは何を達成するでしょうか? –
しかし、サービスは依然として殺される可能性があります。さらに、CountDownTimerを持つものはアクティビティではなく、BroadcastReceiverですが、おそらくそれは問題ではありません。基本的には、このサービスをアンカーとして使用しています。私は何が起こるか知っている。顧客は時折カウントダウンがうまくいかないと不平を言うだろう... –
実際には、これと組み合わせたサービスがチケットになるかもしれません:http://stackoverflow.com/questions/3856767/android-keeping-a-background-service-alive-preventing-process-death –