在异步调用后更新android上的UI

时间:2014-07-30 18:18:44

标签: java android android-activity asynchronous android-asynctask

我想更新,让我们在使用loopj' TextView's Async之后android-async-http调用我的服务器之后说library个内容。所以我的客户"代码:

    public class AsyncClient {
      private static final String BASE_URL = "http://my.server.com";

      private static AsyncHttpClient client = new AsyncHttpClient();

      public static void get(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
          client.get(getAbsoluteUrl(url), params, responseHandler);
      }

      private static String getAbsoluteUrl(String relativeUrl) {
          return BASE_URL + relativeUrl;
      }
}

我客户的请求方法是:

   class AsyncClientRequests {
        public void getData() throws JSONException {

            AsyncClient.get("/data", null, new JsonHttpResponseHandler() {
            @Override
            public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
                // Update UI according to response <<<<-----
            }

        });
    }
}

我的问题是,如果我在&#34; getData&#34;中没有任何TextView个实例,如何更新我的Activity方法?我无法使用findViewById()方法获取TextView并设置其文本。

我唯一的想法是使用观察活动的静态列表为它创建一个Observer。

在此之后,在onCreate()(在onDestroy中未观察到)中观察我的活动,并在async调用后使用静态方法(我可以从onSuccess方法到达,也许让我的观察者一个singleton也可以通知对象更新。

我不认为这是一种可接受的方法,因为观察对象的静态列表中存在冲突。 (不确定它是否会发生,我在Android世界中真的很新:))

你能给我一些更好的方法,或者更多&#34; android喜欢&#34;,或者我应该选择这个并希望它会起作用?

0 个答案:

没有答案