Android Intents, вопросы о setClass ()

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

// Create an Intent to launch an Activity for the tab (to be reused) intent = new Intent().setClass(this, ArtistsActivity.class); 

До сих пор все книги, которые я прочитал, создали новое намерение, используя

 intent = new Intent(this, ArtistActivity.class); 

И задавался вопросом, существует ли разница между двумя строками кода.

Они эквивалентны.

На основе комментария из учебника …

 // Create an Intent to launch an Activity for the tab (to be reused) 

Кажется, они просто используют метод .setClass() вместо Constructor который делает класс более явным, поскольку созданный объект Intent будет повторно использован, и, вероятно, его снова .setClass() .

Нет никакой практической разницы. Есть только разница в том, как это делается. Один использует конструктор, а другой – сеттер. Но конечный результат точно такой же. См. Документацию.

Вы можете использовать .setClass когда один и тот же Intent может иметь два разных класса в зависимости от некоторого состояния. Вот пример:

  Intent resultIntent = new Intent(); if (condition) { resultIntent.setClass(getApplicationContext(), XXXX.class); startActivity(resultIntent); }else { resultIntent.setClass(getApplicationContext(), YYYY.class); } 
Intereting Posts
База данных Sqlite удалена, когда я удаляю данные из приложения Как вы можете справиться с увольнением DialogFragment (совместимость lib) после завершения AsyncTask Android-сервер Android Как увеличить размер шрифта в тосте? Android recylerview v.23.2.0 и библиотека дизайна v.23.2.0 сломаны Правильный способ вызова super.onStop () при незарегистрировании слушателя Intent.EXTRA_EMAIL не заполняет поле Кому Как вызвать контекстное меню при выборе текста? Как преднамеренно перейти к новой строке в EditText? Изменение размеров макетов программным способом (как анимация) Об Android Progress Dialog. Избегайте? Как открыть PDF-файл в приложении для Android и разрешить пользователям использовать встроенные гиперссылки? WebView не будет воспроизводить встроенное флэш-видео Ошибка с графическим редактором макета eclipse android? Передать строку между двумя wifi напрямую подключенным пользователем в android, используя wifi direct?