我在Android中有一个应用程序,它会在短时间内发送几个数据。 APROX。 2500请求。
这个过程非常耗时。
你能给我什么建议来改善时间?
由于
答案 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());
}
}