2017-08-25 31 views
2
微調

我正在開發Android應用程序,有我需要Spinner1和Spinner2使用4 SpinnersActivitySearch(我的活動的名稱)。數據將從Firebase Realtime DatabaseonCreate裝Spinner3是靜態的(數據在應用程序本身提供),但Spinner4將根據Spinner1中選擇的項目從Firebase Realtime Database加載。滯後是由於在Android的

的問題是,當我要ActivitySearch從任何其他活動正在採取2-3秒,以ActivitySearch出現。

這是正常的嗎?或者還有其他一些好的做法?

我該怎麼辦?

+0

有一次,我在這裏得到了禁賽downvotes這就是爲什麼我避免這種情況,但我真的需要一個答案:( –

+0

是ofcourse..my樂趣.. –

+0

OK,我會在今天晚些時候向您發送電子郵件。隨意刪除你的評論,如果你不想讓地址掛在附近。 – GhostCat

回答

0

不,這是不正常的,需要執行很快。我認爲你寫了所有的代碼來加載oncreate()所以,請嘗試加載數據從Firebase使用AsyncTask()與preloader這將幫助你更多。如果你有任何疑問,你可以問我。

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(); 
    } 

你可以這樣寫,它會幫助你。