我的背景来自iOS。 我使用AFNetworking下载数据。我做完成处理程序让我知道下载完成。完成处理程序返回NSData,我随后将其解析。
我将所有下载内容都保存到一个单独的类中。我只是传递URL,参数并下载并返回数据。
如何在Android中实现此类策略。
我的学习:
我从
读到http://developer.android.com/training/basics/network-ops/connecting.html#http-client
我发现我在Activity中执行它,如果我在一个单独的类中使用它。它创造了上下文和其他东西的问题。
当我详细阅读整篇文档时,我发现我可以把东西放到其他课程中,但我找不到任何完成处理程序,将数据发送回Activity类。
所以,我班级的主要部分,如何使用COMPLETION HANDLER下载。
感谢。
答案 0 :(得分:0)
如果您想尝试改造,here are some good examples to get started with并回答您的问题,他们会对您的数据下载时进行回调:
User user = new User(123, "John Doe");
Call<User> call = apiService.createuser(user);
call.enqueue(new Callback<User>() {
@Override
public void onResponse(Response<User> response,
Retrofit retrofit) {
// THIS is where you get a successful callback when your data is downloaded
}
@Override
public void onFailure(Throwable t) {
// Callback for error cases
}
如果您更喜欢凌空,here is their documentation以及如何使用回调进行基本网络通话的示例:
// Instantiate the RequestQueue.
RequestQueue queue = Volley.newRequestQueue(this);
String url ="http://www.google.com";
// Request a string response from the provided URL.
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// THIS is the successful callback
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// Error callback
}
});
// Add the request to the RequestQueue.
queue.add(stringRequest);