加载页面之前的Android暂停

时间:2012-07-27 06:15:11

标签: android android-activity

我有两项活动。活动A从活动B将使用的Web获取大量信息。活动A使用ProgressDialog下载信息,然后触发启动活动B的意图。这样可以正常工作,但在ProgressDialog消失后,活动B开始前大约需要1-3秒的暂停。活动B使用下载的信息显示大型ListView。

在我的ProgressDialog完成显示后,有没有阻止此暂停?

活动A上触发事件的代码

   progressdialog = ProgressDialog.show(this, "", "Loading...");
        mAsyncFacebookRunner.request("fql", paramaters, new FQLRequestListener());

Facebook RequestListener的代码

   private class FQLRequestListener implements RequestListener {

    @Override
    public void onComplete(String response, Object state) {
        try {
            // Load Lots of Data Here ...


            Intent Invite = new Intent(ActivityA.this, ActivityB.class);
            Bundle bundle = new Bundle();
            bundle.putSerializable("items", items);
            Invite.putExtras(bundle);

            progressdialog.dismiss();
            startActivityForResult(Invite, INVITE_FRIENDS);


        } catch (JSONException e) {


        } catch (FacebookError e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    @Override
    public void onIOException(IOException e, Object state) {
        // TODO Auto-generated method stub
        Log.d("exception", "IOException");

    }

    @Override
    public void onFileNotFoundException(FileNotFoundException e,
            Object state) {
        // TODO Auto-generated method stub
        Log.d("exception", "FNFException");

    }

    @Override
    public void onMalformedURLException(MalformedURLException e,
            Object state) {
        // TODO Auto-generated method stub
        Log.d("exception", "MalformedURLException");

    }

    @Override
    public void onFacebookError(FacebookError e, Object state) {
        // TODO Auto-generated method stub
        Log.d("exception", "FacebookError");

    }

}

1 个答案:

答案 0 :(得分:1)

暂停时间只是活动B的屏幕加载时间。并且用数据加载UI。 不要让onCreate()方法变大。在一些不同的线程中将数据加载到UI中......比如AsynTask或任何正常的线程..然后就可以了..