Android : 延迟数据发送到设备有WIFI上网时

Android : Delay data sending to when the device has a WIFI internet access

我正在为一项非常具体的业务制作一种 KYC 一次性应用程序。它将存储数据,包括每个用户的数据:

并且它必须离线工作。

当Android设备连接时,可能是1或2天后,应用程序将不得不发送之前存储在管道中的所有数据。

您可以使用 GCMNetworkManager 来实现它。此 API 提供周期和一次性任务以在后台发送数据。您可以根据某些条件安排网络任务,例如连接到 WiFi 时(您的情况)、充电时。 因此,根据您的情况,您可以编写 one-off 任务来实现它:

OneoffTask task = new OneoffTask.Builder()
    .setService(MyTaskService.class)
    .setTag(TASK_TAG_WIFI)
    .setExecutionWindow(0L, 3600L)
    .setRequiredNetwork(Task.NETWORK_STATE_UNMETERED)
    .build();

mGcmNetworkManager.schedule(task);

现在MyTaskService可以这样实现:

public class MyTaskService extends GcmTaskService {

@Override
public int onRunTask(TaskParams taskParams) {
    //some network oriented synchronous tasks.
    return GcmNetworkManager.RESULT_SUCCESS;
}

Will I have to run the app in order to send the data when I will have a WIFI connection?