2016-09-06 14 views
0

AlarmReceiverによって起動されるサービスは、/ some/path /にあるファイルを探し、クラウドベースのAPIエンドポイントにオフロードしようとすると検出されます。オフロード用のファイルを管理するための最善のアプローチ

同時アラームを回避して、連続した試行でサービスを呼び出すのをやめ、同じファイルをもう一度オフロードしようとするのを避けるために、最も洗練された解決策を見つけようとしています(以前の実行では、

私は、(SharedPreferencesとsqlLtの)アップロード用にマークされたファイルを追跡したり、実行中のサービスが存在するかどうかをテストしたり、AlarmReceiverで別のファイルを開始したりしない

この種の操作を処理するためのいくつかの「正しい」方法を見落としているのだろうかと思います。

答えて

1

私の最初の提案は、ファイルシステムのポーリングを停止することです。私は、必要に応じて、スケジュール、再試行することができJobServiceをお勧めしたい、ファイルをアップロードするにはhttps://gist.github.com/shirou/659180

:あなたは、何か面白いものがあなたの指定したディレクトリに起こったときに通知するFileObserverを使用することができますhttp://toastdroid.com/2015/02/21/how-to-use-androids-job-scheduler/

あなたを取得する必要があることイベント駆動の信頼性の高いアップロードデザインにこれは単純相対性理論で、私はおそらくそれに固執するでしょう。

しかし、のは、バッチジョブに質問が示唆されているように、できるだけ多くを試してみましょう:

は、(ネットワークが使用可能になるのを待っている)のは、ファイルの保留中のアップロードを持っていると仮定しましょう、と別のファイルを取得するには、通知を作成しました。その時点でそのジョブのJobInfoを取得し、ジョブをcancel、新しいファイルリストをrescheduleとすることができます。

ちょうど私の2セントです。

関連する問題