我正在开发一个Android应用程序,我需要在 ActivitySearch (我的活动名称)中使用四个Spinners
。Spinner1和Spinner2中的数据将从{{1}加载活动的Firebase Realtime Database
和Spinner3是静态的(数据在应用程序本身中提供)但Spinner4将根据Spinner1中选择的项目从onCreate
加载。
问题是当我从任何其他活动进入 ActivitySearch 时,需要2-3秒才能显示 ActivitySearch 。
这是正常的吗?还是有其他一些好的做法?
我该怎么办?
答案 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();
}
你可以这样写,它会对你有帮助。