Android 如何等待asynk任务完成以打印输出?

Android 如何等待asynk任务完成以打印输出?,android,asynchronous,android-fragments,task,wait,Android,Asynchronous,Android Fragments,Task,Wait,在MainActivity中,我调用了一个异步任务,然后调用了一个片段,在这个片段中,我必须显示异步任务下载的结果,但是在打印输出之前,我必须等待异步任务完成 -如何等待任务完成 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Log.

在MainActivity中,我调用了一个异步任务,然后调用了一个片段,在这个片段中,我必须显示异步任务下载的结果,但是在打印输出之前,我必须等待异步任务完成

-如何等待任务完成

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Log.v(TAG, "OnCreate");

        /* make the API call */
        Intent intent = getIntent();
        session = (Session) intent.getSerializableExtra("session");
        String fqlQuery = "select eid,name,description,start_time, pic_big from event where eid in (SELECT eid FROM event WHERE contains("
                + "'{Trento}'" + ")) order by start_time ASC";
        Bundle params = new Bundle();
        params.putString("q", fqlQuery);

        Request request = new Request(session, "/fql", params, HttpMethod.GET,
                new Request.Callback() {
                    public void onCompleted(Response response) {
                        //Log.i(TAG, "Got results: " + response.toString());
                        try {
                            if (response != null) {

                                final JSONObject json = response.getGraphObject().getInnerJSONObject();
                                JSONArray d = json.getJSONArray("data");
                                int l = (d != null ? d.length() : 0);
                                Log.d("Facebook-Example-events Request",
                                        "d.length(): " + l);

                                for (int i = 0; i < l; i++) {
                                    JSONObject o = d.getJSONObject(i);
                                    String id = o.getString("eid");
                                    String title = o.getString("name");
                                    String description = o.getString("description");
                                    String start_time = o.getString("start_time");
                                    String photo = o.getString("pic_big");

                                    EventsHelper f = new EventsHelper();
                                    f.setId(id);
                                    f.setTitle(title);
                                    f.setDescription(description);
                                    f.setStart_time(start_time);
                                    f.setPhoto(photo);
                                    events.add(f);
                                }
                            }
                        } catch (JSONException e) {
                            Log.w("Facebook-Example", "JSON Error in response");
                        }
                    }
                });
        Request.executeBatchAsync(request);



        Fragment fragment = new Fragment_main();
        FragmentManager manager = getFragmentManager();
        FragmentTransaction transaction = manager.beginTransaction();
        transaction.add(R.id.content_frame, fragment, "basefragment");
        transaction.addToBackStack(null);
        transaction.commit();

创建一个扩展AsyncTask并重写函数的类,以定义任务完成后UI线程上需要发生的事情。

要等待asyntask完成,必须使用下面的get

 Request.executeBatchAsync(request).get();

您是否有任何错误日志,然后将其共享?是的,我不知道在MainActivity中启动的asynk任务结束之前是否要在fragment类中等待!因为当我在返回EventHelper的ArrayList为空的片段中调用方法getEvents时,因为任务尚未完成!非常感谢。我解决了我的问题,将碎片布局的参考发送给asynkTask,然后在其上打印布局: