2016-09-27 2 views
0

Я изучаю из книги программирование в андроидном руководстве по большому ботаническому ранчо, в котором автор пишет методы Static Intent для передачи данных между действиями. Хотя я знаю, как работает код, но в полной мере незнакомы с логикой и причина этого.Зачем использовать Static Intent Methods в Android?

public static Intent newIntent(Context packageContext, boolean answerIsTrue){ 
    Intent i = new Intent(packageContext,CheatActivity.class); 
    i.putExtra(EXTRA_ANSWER_IS_TRUE,answerIsTrue); 
    return i; 
} 
+0

Измените свой вопрос и предоставьте [mcve], демонстрирующий код, который вы не понимаете. – CommonsWare

+0

@CommonsWare У меня есть ответы на обновления с демонстрационным кодом, упомянутым в книге, и спасибо за исправление – Pheonix

+0

Вы забыли рассказать, что автор рассказывает о своей цели. – greenapps

ответ

3

Я предполагаю, что вы имеете в виду, он пишет такие функции, как:

public static Intent createIntent(param1, param2) { 
    Intent intent = new Intent(); 
    intent.putExtra(param1); 
    intent.putExtra(param2); 
    return intent; 
    } 

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

0

Из самой книги:

Этот статический метод позволяет нам создать Intent правильно сконфигурированный с статистов CheatActivity будут нуждаться. Аргумент answerIsTrue, логический, вводится в намерение с помощью частного имени с использованием константы EXTRA_ANSWER_IS_TRUE. Вы мгновенно извлечете это значение. Использование метода newIntent (...), подобный этому для подклассов вашей активности, упростит для другого кода правильную настройку их запуска.

0

Я предпочитаю статический метод Android студия производит, когда вы набираете «стартер»

public static void start(Context context) { 
    Intent starter = new Intent(context, SomeActivity.class); 
    starter.putExtra(EXTRA_SOME_EXTRA, "some_extra_String"); 
    context.startActivity(starter); 
} 

, которые затем можно расширить, чтобы точно определить, какие параметры должны стать дополнительными или каким запрос кода.

public static void startForResult(Activity activity, String name, int requestCode) { 
    Intent starter = new Intent(activity, SomeActivity.class); 
    starter.putExtra(EXTRA_SOME_EXTRA, name); 
    activity.startActivityForResult(starter, requestCode); 
} 
Смежные вопросы