0

我有两个活动。活动 A 从活动 B 将使用的网络中获取大量信息。Activity A 使用 ProgressDialog 下载信息,然后触发启动 Activity B 的意图。这工作正常,但是在 ProgressDialog 消失后,在 Activity B 开始之前会有大约 1-3 秒的暂停。Activity 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");

    }

}
4

1 回答 1

1

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

于 2012-07-27T06:39:46.310 回答