由于Android中的微调器,两个活动之间的转换滞后

时间:2017-08-25 04:21:48

标签: android android-layout android-spinner

我正在开发一个Android应用程序,我需要在 ActivitySearch (我的活动名称)中使用四个Spinners。Spinner1和Spinner2中的数据将从{{1}加载活动的Firebase Realtime Database和Spinner3是静态的(数据在应用程序本身中提供)但Spinner4将根据Spinner1中选择的项目从onCreate加载。

问题是当我从任何其他活动进入 ActivitySearch 时,需要2-3秒才能显示 ActivitySearch

这是正常的吗?还是有其他一些好的做法?

我该怎么办?

1 个答案:

答案 0 :(得分:0)

不,这是不正常的,需要执行得非常快。我认为你在oncreate()中编写了所有加载微调器的代码所以,请尝试使用AsyncTask()加载来自firebase的数据和预加载器#s; s会帮助你更多。如果您有任何疑问,可以问我。

private void LoadInBackground() {
        new AsyncTask<Void, Void, String>() {
            ProgressDialog pd;

            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                pd = new ProgressDialog(MainActivity.this);
                pd.setMessage("loading..");
                pd.show();
            }

            @Override
            protected String doInBackground(Void... params) {
                String msg = "";
                //Write your code to load data
                return msg;
            }

            protected void onPostExecute(String msg) {
                super.onPostExecute(msg);
                if (pd != null) {
                    pd.dismiss();
                }
                Log.d(TAG, "DATA IS LOADED " + msg);
                //set all the data here to spinners
            }
        }.execute();
    }

你可以这样写,它会对你有帮助。