代码之家  ›  专栏  ›  技术社区  ›  janoliver

Android:预加载列表活动

  •  0
  • janoliver  · 技术社区  · 15 年前

    我的应用程序中有一个非常复杂的列表视图,其中包含从Internet获取的数据等。要尽可能多地预加载ListView,以便它立即出现在屏幕上,最佳做法是什么?

    例如,Android的标准短信/彩信应用程序在显示对话之前会显示一个带有旋转加载程序和“加载…”的白色屏幕。我在Android源代码中找不到这个,但我猜这是一个额外的加载活动,它使用finish()进行缓存并移交给会话活动,这样就不会显示屏幕更改动画。

    如何预加载或缓存ListView项?甚至可以这样做吗?

    谢谢!谨致问候,简·奥利弗

    1 回复  |  直到 15 年前
        1
  •  1
  •   Pentium10    15 年前

    AsyncTask ProgressDialog


    private class PrepareAdapter1 extends AsyncTask<Void,Void,ContactsListCursorAdapter > {
        ProgressDialog dialog;
        @Override
        protected void onPreExecute() {
            dialog = new ProgressDialog(viewContacts.this);
            dialog.setMessage(getString(R.string.please_wait_while_loading));
            dialog.setIndeterminate(true);
            dialog.setCancelable(false);
            dialog.show();
        }
        /* (non-Javadoc)
         * @see android.os.AsyncTask#doInBackground(Params[])
         */
        @Override
        protected ContactsListCursorAdapter doInBackground(Void... params) {
            cur1 = objItem.getContacts();
            startManagingCursor(cur1);
    
            adapter1 = new ContactsListCursorAdapter (viewContacts.this,
                    R.layout.contact_for_listitem, cur1, new String[] {}, new int[] {});
    
            return adapter1;
        }
    
        protected void onPostExecute(ContactsListCursorAdapter result) {
            list.setAdapter(result);
            dialog.dismiss();
        }
    }