проблема отображения старта Android - PullRequest
1 голос
/ 15 декабря 2011

p В моем приложении у меня есть стартовая страница, которая является всплеском.Как только это действие началось, я устанавливаю контент для этой страницы.Затем я делаю все начальные обновления, такие как синхронизация БД.По завершении этих действий я начинаю следующую операцию.

Так что я действительно должен начать показ приложения со своей заставкой, и через несколько секунд он должен отобразить следующую страницу.

Что я получаю, это когда я начинаюприложение, эта пустая черная страница на несколько секунд, а затем сразу отображается вторая страница активности.Если я закомментирую начало следующего действия, я смогу увидеть черную страницу в течение нескольких секунд, а затем появится всплывающая страница и останется

, вот мой макет и код

    <?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 Ответ

1 голос
/ 15 декабря 2011

Это потому, что вы синхронизируете БД, и, следовательно, вы получаете пустой экран, и до тех пор, пока ваша БД не синхронизируется, период времени для заставки завершается, и он непосредственно переходит к следующему действию.Поэтому попробуйте удалить код синхронизирующей БД и попробуйте получить точный результат.Затем для синхронизации БД вы должны использовать фоновый поток, который не влияет на UI-поток.eg:- AsyncTask

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...