2011-12-15 8 views
1

私のアプリケーションでは、スタートアップページがスプラッシュしています。このアクティビティが開始されると、私はこのページにコンテンツを設定しています。それから私はDB同期のようなすべての最初の更新をしています。それらの完了時に私は次の行動を開始します。android startactivity display issue

私は本当にスプラッシュページの表示を開始し、数秒後に次のページを表示する必要があります。

私が何を得ているのは、アプリケーションを起動すると、この空白の黒いページが数秒間存在し、その後直接2番目の活動ページが表示されます。私は次のアクティビティを開始コメントアウトした場合、私は、数秒間黒のページを見ることができ、その後、スプラッシュページが来ると

ままここに私のレイアウトやコード

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <ImageView android:layout_width="fill_parent" android:src="@drawable/defaultimage" 
      android:layout_height="fill_parent" 
      android:scaleType="fitXY" 
      ></ImageView> 


</LinearLayout 

>

public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      Utils.setStartActivityinstance(this); 
      this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
      setContentView(R.layout.firstpage); 
     Log.i(TAG, "display set"); 
      Utils.imageLoader = new ImageLoader(this.getApplicationContext()); 
      initialise(); 
      doDataSync(); 
     displayHome(); 

} 

ですsetContentViewは初期化の前に呼び出されますが、表示が更新されません。

答えて

1

これは、DBを同期しているために空白の画面が表示され、DBが同期するまでスプラッシュ画面の時間が完了し、次のアクティビティに直接移動するからです。同期DBコードを削除して、正確な出力を得ようとしてください。次に、同期DBの場合、UIスレッドに影響を与えないバックグラウンドスレッドを使用する必要があります。 eg:- AsyncTask

+0

私は非同期タスクとその動作としてdatasyncを試しました。ありがとうございました – png

+0

ようこそ、私はAsyncTask(バックグラウンドスレッドを使用)を使用する間接的な方法を与えました。 :) –