Как показать макет MainActivity в методе onCreate ()?

Я только начал изучать андроид и немного озадачился графикой на экране. То, что я пытаюсь сделать,

1> показать макет MainActivity, который разработан в файле макета xml

2> подождите 2 секунды, показывая MainActivity

3> Переход к следующей операции

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

Это мой исходный код для MainActivity.

public class MainActivity extends AppCompatActivity { Intent settingIntent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override protected void onStart(){ super.onStart(); try { Thread.sleep(2000); } catch(InterruptedException e) { // } settingIntent = new Intent(this,SettingActivity.class); startActivity(settingIntent); } } 

Как я могу сделать эту работу своим намерением?

Вы можете просто использовать метод по умолчанию для View s – postDelayd

 findViewById(android.R.id.content).postDelayed(new Runnable() { @Override public void run() { Intent settingIntent = new Intent(MainActivity.this, SettingActivity.class); MainActivity.this.startActivity(settingIntent); } }, 2000); 

Напишите его после

 setContentView(R.layout.activity_main); 

И удалите onStart

Когда вы вызываете сон, вы приостанавливаете поток пользовательского интерфейса. Это не то, что вам нужно. Вместо этого сделайте следующее:

 @Override protected void onStart(){ super.onStart(); new Handler(Looper.getMainLooper()).postDelayed(new Runnable() { @Override public void run() { settingIntent = new Intent(MainActivity.this,SettingActivity.class); MainActivity.this.startActivity(settingIntent); } }, 2000); } 

РЕДАКТИРОВАТЬ

Как справедливо отметил Commonsware, это может привести к утечке памяти. Вы должны рассмотреть возможность использования решения @yidavewu.

То, что я знаю, это обратный вызов onStart, говорит о том, что активность будет показана. Так что это пока не показано. Лучше выбрать, чтобы ваш код показывал новую активность в обратном вызове onResume.

Intereting Posts
Как подключить Bluetooth-устройство к программному обеспечению Android AVD запускается с разными размерами текста и значков Волейбол просит не работать с сеансами Django Ошибка при использовании Asynctask для регистрации GCM Nexus 5x обратный ландшафтный датчик исправить в приложении предварительного просмотра камеры Android Android: размещение ImageView при перекрытии между макетами Вращение ImageView в Android <Уровень API 11 Как использовать LightingColorFilter, чтобы сделать изображение темным для света Создание TextView из XML-файла шаблона Как сделать мой макет способным прокручивать вниз? Android GATT Services возвращает Null после многих успешных соединений Android: создание родительского макета и расширение его, чтобы поддерживать одинаковый внешний вид во всех действиях приложения Как избавиться от этой черной полосы во время анимации? Элементы не имеют одинаковой ширины при использовании утилиты RecyclerView GridLayoutManager для создания интервала столбцов с помощью ItemDecoration Получение одноразового кода авторизации Google