如何制作启动画面并在后台运行listview流程?

时间:2016-06-02 10:05:07

标签: android listview

我有一个应用程序从sqlite db加载数据,用它做一些计算并使用listview和适配器呈现它。所以这部分准备就绪并正在运作。在数据足够大的情况下,计算时间可能会变长。这很重要,因为我的活动不会显示,直到列表的所有元素都没有准备好。出于这个原因,我想在开始时显示一个启动画面并显示它,直到MainActivity中的所有数据都没有准备好。如果有一些关于它的教程或任何建议,我会真正推荐它。

但是,我需要添加另一个信息,即负责显示listView的MainActivity是整个应用程序的中心单元。用户经常会在应用启动后重新打开此页面。因此,必须在启动画面活动之外提供从sqlite db更新或创建新listview项的方法。

1 个答案:

答案 0 :(得分:1)

 public class SplahActivity extends Activity {

        public static final int Tick = 1000;
        public static final int Complete = 5000;
        ArrayList<String> data;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_splash);

            data = new ArrayList<>();
            AsyncTaskRunner runner = new AsyncTaskRunner();
            String sleepTime = time.getText().toString();
            runner.execute(sleepTime);

        }

        private class AsyncTaskRunner extends AsyncTask<String, String, String> {

            private String resp;
            @Override
            protected void onPreExecute() {
                // Things to be done before execution of long running operation. For
                // example showing ProgessDialog
            }

            @Override
            protected String doInBackground(String... params) {

                // data and save it in array
               // data = Reveice data from db
                return resp;
            }
            @Override
            protected void onPostExecute(String result) {
                // execution of result of Long time consuming operation

                Intent i = new Intent(ActivityName.this,SecondScreen.class);
                startActivity(i);
            }
        }
    }