/ バックグラウンドでの/ RESTアップロード - android、rest、android-service、android-sqlite、android-contentprovider

アンドロイド、レスト、アンドロイド・サービス、android-sqlite、android-contentprovider

私のAndroidアプリは ContentProvider SQLiteテーブルにデータ(文字列)を格納する これらの行はインターネットサーバーに送信されるebする必要があります

リモートホストが利用可能なときにこのデータをバックグラウンドでアップロードしたい(たとえばWiFiオン)

データはできるだけ早く送信する必要があります(ネットワークの場合もちろん利用可能) 私のアプリのUIに干渉することなく それは私のアプリが主な焦点を持っていない場合でも送信する必要があります(ユーザーがSMSまたはカメラを使用している可能性があります)

5秒ごとに新しいデータをテーブル(アウトキュー)に追加できます。

Q:未送信の行を送信するためにバックグラウンドサービスを使用する必要がありますか?

「警報サービス」を使うのはあまりにも頻繁に思われるが、私は間違っている可能性が

バッテリーの寿命は私の主な関心事ですが、第二にそれはできるだけ早く(またはインターネットが利用可能になった直後に)送信する必要があるということです

アンドロイドスタジオ ターゲティングAPI 17+

回答:

回答№1は0

バックグラウンドサービスは電池寿命を要求し、救いなさい。接続状態を確認して自分自身を送信し、接続がないときにサービスに処理を任せることもできます。あるいは、サービスを使用して常にデータを送信し、いつ送信するかを決定することもできます。

サービスに関しては、この質問を見なさい: 無線LANネットワークの状態が変化したときに通知する方法

その答えにコードを使用することが考えです。利用可能な接続があるときにそれを検出するためにあなたのサービスに放送受信機を実装するため。その接続が利用可能になったら、データを送信できます。