私は、デバイスがインターネットに接続されているときにバックグラウンドでサーバーにすべてのデータベースレコードを順番にアップロードするアプリケーションに取り組んでいます。BroadcastReceiverとServiceの代わりにJobSchedulerを使用する
このため、私はBroadcastReceiver
と書いてあり、ネットワーク接続をリッスンします。このレシーバがトリガされると、私はレコードをアップロードするバックグラウンドサービスを開始しています。
ここに私のコードです。
public class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
AppUtils.checkInternetConnection(context));
//If the device has the internet connection and if there are any pending records to upload to server then start the service for uploading the records.
if (AppUtils.checkInternetConnection(context)) {
if (Database.getInstance().getTotalRecordsCount() > 0) {
context.startService(new Intent(context, SurveyUploadService.class));
}
} else {
context.stopService(new Intent(context, SurveyUploadService.class));
}
}
}
は今、私の疑問は
1です。私はJobSchedulerを使用して同じことを行うことができますか?
2.私のアプローチ(JobSchedulerを使用したほうがよい)とその理由は何ですか?なぜですか?
CONNECTIVITY_CHANGEとCONNECTIVITY_ACTIONの違いは何ですか? – Kartheek
https://developer.android.com/reference/android/net/ConnectivityManager.html#CONNECTIVITY_ACTIONを見ると、CONNECTIVITY_ACTIONは「android.net.conn.CONNECTIVITY_CHANGE」という値を持つ定数の名前です。 – Chris
これは大変ありがとうございます – Kartheek