-1

Я избегал вызова метода startActivity за пределами class, который extends Activity.Следует ли избегать `startActivity` вне класса Activity?

Однако теперь у меня есть функция, которая обрабатывает 401 Unauthorized ошибки от putExtra на качестве Intent пройти по ошибке, и startActivity переходящих на мой Вход/Регистрация активности.

Эта функция находится в моем модуле utils, в его собственном class.

Должен ли я вместо этого возвращаться из этой функции полезности - структуры чего-то вроде (err, result, route) и обработки этой логики перехода состояния в моем классе расширения Activity?

EDIT: В этой заметке я не проходил мимо таких элементов, как TextView, для служебного метода до setText. Вместо этого я возвращаю String и назначаю его в class, что extends Activity.

Как правило, это плохая практика делать то, что влияет на представление/маршрутизацию за пределами деятельности?

+0

До тех пор, пока у вас есть доступ к контексту, вы можете использовать 'startActivity' где угодно. –

+0

Может быть, я был неясно, я знаю, что могу запустить его снаружи, и я проходил мимо ['Context'] (https://developer.android.com/reference/android/content/Context.html). То, что я хочу знать, это плохая практика? –

ответ

0

Вы можете вызвать startActivity вне подкласса Activity. До тех пор, пока у вас есть доступ к ссылке на контекст, вы можете вызвать startActivity. В вашем случае либо сохраните ссылку на Activity in util class, либо передайте данные обратно в действие с помощью интерфейса.

+0

Возможно, я был неясно, я знаю, что могу запустить его снаружи, и я проходил мимо [Context'] (https://developer.android.com/reference/android/content/Context.html). То, что я хочу знать, это плохая практика? –

+0

Неплохая практика. Вы можете вызвать startActivity вне подкласса Activity. – Kundan

0

Определенно не плохая практика. Вы можете запускать активность вне любого класса. Просто нужно быть уверенным в вашем стеке активности. В случае 401 вы, очевидно, очистите стек, что не приведет к повреждению стека активности. В других случаях просто будьте уверены в стеке активности.

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