从Android发送大量数据

时间:2017-09-06 13:56:09

标签: android mobile server

我在Android中有一个应用程序,它会在短时间内发送几个数据。 APROX。 2500请求。

这个过程非常耗时。

你能给我什么建议来改善时间?

由于

2 个答案:

答案 0 :(得分:0)

您可以使用多个线程在后台将数据发送到服务器。

如果在执行后使用AsyncTask更新UI组件。但是你必须并行运行AsyncTask。您可以通过AsyncTaskCompat.executeParallel(Your AsyncTask);

执行此操作

如果您希望发送数据,即使您的应用已关闭。您可以使用服务

答案 1 :(得分:0)

我建议使用Retrofit。它可以解决您可能遇到的许多线程问题。

以下是他们网站上的一个例子。

您要为要接收的API创建一个界面:

public interface GitHubService {
   @GET("users/{user}/repos")
  Call<List<Repo>> listRepos(@Path("user") String user);
}

您构建了一个改造类

Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("https://api.github.com/")
    .build();

GitHubService service = retrofit.create(GitHubService.class);

最后你得到一个调用对象:

Call<List<Repo>> repos = service.listRepos("octocat");

使用调用对象需要将回调排入队列。以下是使用不同的Retrofit服务(在这种情况下为TaskService)的示例:

TaskService taskService = ServiceGenerator.createService(TaskService.class);  
Call<List<Task>> call = taskService.getTasks();  
call.enqueue(new Callback<List<Task>>() {  
    @Override
    public void onResponse(Call<List<Task>> call, Response<List<Task>> response) {
        if (response.isSuccessful()) {
            // tasks available
        } else {
            // error response, no access to resource?
        }
    }

    @Override
    public void onFailure(Call<List<Task>> call, Throwable t) {
        // something went completely south (like no internet connection)
        Log.d("Error", t.getMessage());
    }
}

Source