2012-04-15 6 views
1

私のアプリケーションでは、データをサーバーに照会するサービスがあります。 このサービスは、構成可能なx分ごとにサーバーに照会します。 私は完璧に動作USBが接続されていないとScheduledExecutorServiceが停止する

USBケーブルに接続されたアプリケーション、

timer.schedule(new MyTimerTask(), delayInSec, TimeUnit.SECONDS); 
を実行します。しかし、デバイスがUSB(コンピュータ)に接続されていないとき、それは停止しました。

デバイスがUSBに接続されている場合は正常に戻ります。

どのように解決できますか?

ありがとう、 Eyal。

答えて

1

どのように解決できますか?

ステップ1:既存のScheduledExecutorServiceの実装を削除します。

ステップ2:AlarmManagerを使用してスケジュールされた作業を設定し、作業をWakefulIntentServiceで実装すると、デバイスが起動して作業を完了し、作業を完了するのに十分な長時間起動した後に戻ります。完了したらスリープ状態にします(サービス間でジョブをシャットダウンするので、ユーザーのRAMは常に固定されません)。

関連する問題