私はバックグラウンドでデータを送信するためにGcmTaskService
を使用しています。ほとんどの場合、うまく動作しますが、最近、クライアントからデータがデバイスから送信されていないという苦情が1件あります。 Iveはデバイスを持ってきて、私は自分のGcmTaskServiceのonRunTaskがこの特定のデバイス上で決して呼び出されないことに気付きました。onRunTaskが呼び出されない
これは私がサービスを開始する方法を示します。
GcmNetworkManager gcmNetworkManager = GcmNetworkManager.getInstance(FarmWorkApplication.context);
Class<FarmWorkSyncOutService> gcmTaskService = FarmWorkSyncOutService.class;
String name = gcmTaskService.getName();
gcmNetworkManager.cancelTask(name, gcmTaskService);
OneoffTask task = new OneoffTask.Builder()
.setService(gcmTaskService)
.setTag(name)
.setExecutionWindow(0L, maxDelay)
.setRequiredNetwork(Task.NETWORK_STATE_CONNECTED)
.build();
gcmNetworkManager.schedule(task);
これは、マニフェストのサービス定義である:
<service android:name=".FarmWorkSyncOutService"
android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE"
android:exported="true">
<intent-filter>
<action android:name="com.google.android.gms.gcm.ACTION_TASK_READY"/>
</intent-filter>
</service>
デバイスはWIFIでインターネットに接続されており、非常にインターネットサーフィンれますよく
この行は:
gcmNetworkManager.cancelTask(name, gcmTaskService);
だけのサービスを保証することであるが、一度実行し、私もそれを削除しようとしましたが、それは私がGooglePlayServicesを停止力を試してみました
を支援し、そのデータを削除didntは、それが助けをdidntのこれをデバッグするために他に何ができますか? any1はなぜこれが起こるか考えていますか?