2014-09-22 2 views
0

У меня есть изображение заставки в onCreate (MainActivity).начать андроидную активность после загрузки всего содержимого

Я хочу, чтобы изображение осталось до тех пор, пока второе действие (URL-браузер) не завершит загрузку.

Есть ли способ предварительно выполнить его и загрузить через несколько секунд.

Все примеры, которые я вижу, имеют заставку в течение нескольких секунд, а затем запускают второе действие, но не предзаписывают.

Как это сделать?

+1

Что такое URL-браузер? Я использовал для размещения макета в своей деятельности, с заставкой, и когда активность завершила загрузку, я удалил верхний макет с помощью 'setVisibility (View.GONE);' в функции обратного вызова. –

+0

URL-адрес веб-сайта, который я хочу загрузить, используя веб-просмотр. Возможно ли изменение макетов программно с изображением в 1-м макете и веб-просмотре во втором. –

ответ

0

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

+0

Я попытался установить изображение на pre execute в asyctask и сделать его невидимым позже, но изображение накладывается на другие элементы, и я вижу его прозрачным. Итак, я создал 2 действия с двумя разными макетами. 1-й макет имеет изображение, а второй макет имеет основное содержимое для загрузки. –

0

Вы можете использовать задачу async; вот пример;

private AsyncTask<String, Integer, String> xTask = new AsyncTask<String, Integer, String>() { 
    @Override 
    protected String doInBackground(String... strings) { 
     //you can just sleep a while to show your splash 
     return null; 
    } 

    @Override 
    protected void onPostExecute(String s) { 
     //do something as the execution completed, you can launch your real activity. 
    } 
}; 

и на вас деятельность onResume

@Override 
public void onResume() { 
    if(xask.getStatus().equals(AsyncTask.Status.PENDING)) xTask.execute(); 
    super.onResume(); 
} 
+0

Я думаю, что это ответ, который вы искали, но также как дополнительная информация: http://cyrilmottier.com/2012/05/03/splash-screens-are-evil-dont-use-them/ У пользователя, который смотрит на вас логотип и интересно, сколько времени это займет, настолько плохой пользовательский, что я не могу понять, почему разработчики все еще используют их. – dominik4142

+0

Здесь я в основном хочу начать работу в фоновом режиме и привести ее в интерфейс после небольшой задержки времени. Например, URL-адрес открывается, но через несколько секунд выводится на передний интерфейс. Я попытался использовать asynctask, но не очень помог. –

+0

Можете ли вы поделиться своей пробной версией в asynctask – dursun

0

Альтернативно, загрузите фрагмент в своей деятельности, которая отображает экран заставки. Загрузите фрагмент так, как вам нужно, загрузив его с помощью задачи async. При обратном вызове из асинхронной задачи выгрузите фрагмент заставки и загрузите новый фрагмент с тем, что вам нужно показать.

Смежные вопросы