0

在我的應用程序中,主頁面包含了很多圖片來加載我的上傳管理器活動,因此可能需要幾秒鐘,具體取決於有多少圖片。我計劃創建一個啓動畫面來執行此加載,同時顯示的圖像不像標題的默認空白屏幕那麼糟糕。我已經做到了這一點,這應該工作,除了setcontentview()運行,但不顯示。安卓異步啓動屏幕沒有顯示內容視圖

public class SplashScreen extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.splash_screen); 


    load l=new load(); 
    l.execute(this); 
} 


class load extends AsyncTask<Activity, Object, Object>{ 

    @Override 
    protected Object doInBackground(Activity... a) { 
     // TODO Auto-generated method stub 


    Log.i("ss", "splash"); 
     Intent intent = new Intent(a[0], UploadManager.class); 
     startActivity(intent); 
     a[0].finish(); 


     return null; 
    } 

} 
} 

有沒有人有什麼建議? ,隨時提問詳情,我不認爲我已經解釋得很好。

編輯:

謝謝你們的快速反應。然而 我相信問題是,我沒有使用正確的目的,閃屏,參與 的過程:

Intent intent = new Intent(a[0], UploadManager.class); 
    startActivity(intent); 
    a[0].finish(); 

似乎瞬間完成,我的onCreate方法意味着圖像不執行直到閃屏結束。我所做的改變是將我的網格加載到asynk任務中,就像在那裏做我的圖像一樣。

我現在快速加載幾秒後出現的圖像。我將實施某種進度對話框。

任何其他有類似問題的人應該優先考慮使裝載更有效率,因爲我有。

回答

1

你傳入語境l.execute(本)和類負荷您已經通過活動實例。 你能做到這樣,它就像一個魅力對我來說

public class SplashScreen extends Activity{ 


    private static int SLPASH_TIME_OUT = 3000; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_splash); 

     new Handler().postDelayed(new Runnable() { 

      @Override 
      public void run() { 
       // TODO Auto-generated method stub 
       Intent i = new Intent(SplashScreen.this, MainActivity.class); 

       startActivity(i); 
       finish(); 
      } 
     }, SLPASH_TIME_OUT); 
    } 
} 
0

覆蓋onPostExecute方法class load extends AsyncTask<Activity, Object, Object>{類,當你doInBackground方法共完成圖像下載,這將運行。 在onPostExecute你可以打開你的下一個活動

protected void onPostExecute(Void unused) { Intent intent= new Intent(this, next.class); startActivity(intent); }

相關問題