Android:单击TabWidget后如何解决响应缓慢的问题

时间:2011-11-15 15:44:57

标签: android

我的应用程序顶部有四个Tab 第四个选项卡的内容是它将从sql server获取数据,然后在listview中显示 由于检索的数据量很大,需要2-3秒 问题是:
单击第四个选项卡后,它没有响应,然后在2-3秒后显示内容
据我所知,它是从数据库加载数据,我不会继续点击
但是,当用户点击它并且没有响应时,他可以单击并单击并单击
如何向用户显示内容以便他们知道它正在加载数据?

3 个答案:

答案 0 :(得分:2)

您应该使用CrusorLoader。这将显示加载圈,同时仍然使UI处于活动状态。请注意,即使您使用的是较低版本的android API,您仍然可以通过Android Support Package访问CursorLoader类。有关loaders的详细信息,请结帐

答案 1 :(得分:2)

new SomeTask(0).execute(); //在第4个选项卡onCreate()

中写下这一行
/** Inner class for implementing progress bar before fetching data **/
    private class SomeTask extends AsyncTask<Void, Void, Integer> 
    {
        private ProgressDialog Dialog = new ProgressDialog(yourActivityClass.this);
        @Override
        protected void onPreExecute()
        {

            Dialog.setMessage("loading...");
            Dialog.show();
        }

        @Override
        protected Integer doInBackground(Void... params) 
        {
            //Task for doing something 
 //   get data from sql server and then display in listview
            return 0;
        }

        @Override
        protected void onPostExecute(Integer result)
            {

            if(result==0)
            {
//do some thing if your list completed
            }

    // after completed finished the progressbar
            Dialog.dismiss();
        }

    }

答案 2 :(得分:0)

当一个长时间运行的进程启动时,你需要指出发生的事情,以便用户知道等待。你想要一个进度对话框。

这是一个例子: http://www.androidpeople.com/android-progress-dialog-example