2013-05-08 2 views
0

У меня есть две операции A и B. Активность A начнет работу B. Выполняет инициализацию пользовательского интерфейса, db-запрос и операцию чтения локального хранилища в onCreate of Activity B. Моя проблема: Activity B занимает много времени, чтобы видимо. Это из-за таких операций в onCreate? Сначала я хочу, чтобы мои изменения в пользовательском интерфейсе были видимыми. Пожалуйста, наведите меняУвеличение активности Время загрузки

+0

Да. Вы можете запустить тяжелую операцию в другом потоке, а затем обновить интерфейс. – Kanth

+0

Спасибо. Должен ли я выполнять изменения пользовательского интерфейса в onCreate и других операциях в состоянии onResume? После чего активность состояния видна пользователю? – vignesh

+0

Нет. Проверьте жизненный цикл активности. onResume() вызывается непосредственно перед тем, как экран становится видимым. Поэтому, даже если вы выполняете тяжелые операции в onResume(), не было бы никакой разницы. Либо выполните приведенный ниже ответ, либо используйте asynctask. У вас могут быть варианты для этого или создать свой собственный поток. – Kanth

ответ

0

В вашей команде onCreate выполняются тяжелые задачи в разных Thread/handler/AsyncTask. Пример

public void onCreate(Bundle b){ 
    super.onCreate(b); 
    setContentView(R.layout.yourlayout); 
    // do other gui initialization 
    Handler h = new Handler(); 
    h.post(new Runnable{ 
     public void run(){ 
      // do your heave tasks 
     } 
    }); 
}