Активность начинается слишком долго

Здравствуйте, у меня проблема с открытием Activity.

Я звоню startActivity() с помощью Intent, нажав Button.

Мне нужно подождать 4-5 секунд, прежде чем Activity появится на экране.

Я знаю, как это сделать.

itemimg = new ItemsInPacagesImageView(imglist1, this, nazovtripu, 0);

У меня есть похожий код 17 раз (с другими ImageViews) у меня есть это в методе с именем InitItemimg();

Я попытался поместить этот метод в действие OnStart с этим потоком.

@Override
public void onStart() {
    super.onStart();

    timer = new Thread() { // new thread
        public void run() {
            Boolean b = true;
            try {
                sleep(20);

                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                // TODO Auto-generated method stub
                               InitItemimg();;
                            }

                        });
            } catch (InterruptedException e) {
                e.printStackTrace();
            } finally {
            }
        }
    };
    timer.start();

}

Но моя проблема не решена, пожалуйста, у вас есть идеи? Спасибо


person trip03    schedule 28.01.2017    source источник


Ответы (1)


извините, я так понял в этом методе (ItemsInPacagesImageView(imglist1, this, nazovtripu, 0);) при запуске десериализации идентификатора, если какая-то десериализация в строке "быстрая", но если она больше в строке (теперь 17), с программой десериализации тратится больше времени на несколько секунд.

Я решаю эту проблему с помощью явного определения класса, который я десериализую в методе.

Теперь я десериализую один раз вместо 17 раз. и я экономлю больше миллисекунд.

person trip03    schedule 28.01.2017