Android: возможно ли разместить HTTP-запрос вне onCreate в Activity?

1

Я новичок в Android и пытаюсь выяснить, где разместить HTTP-запрос, чтобы он выполнялся только один раз (когда активность стала видимой). onCreate всегда вызывается при возврате из onActivityResult (захват картинки с камеры здесь)

Какие-либо предложения?

Теги:
oncreate

3 ответа

4
Лучший ответ

Внутри onCreate(Bundle savedInstanceState) если savedInstanceState имеет значение null это первый/чистый запуск активности. Таким образом, вы можете сделать что-то вроде этого:

onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (savedInstanceState == null) {
        // call HTTP request
    }

    ... the rest of onCreate()
}
  • 0
    Спасибо, это похоже на работу!
1

Как насчет установки флага при первом вызове внутри onCreate, а затем проверки его каждый раз при вызове CreateCreate (и вашего кода). Для полноты жизненного цикла Activity документируется здесь: http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

0

OnCreate() не может быть плохим местом, если вы либо одобрены, когда выполняете его всегда, когда действие запущено, либо вы готовы проверить, было ли это уже сделано (как говорят другие ответы). Вы можете установить флаг в SharedPreferences для этой цели, так как этот флаг также сохранится при завершении работы приложения и перезапуске.

Сказав это: вам все равно нужно поместить запрос http в фоновый поток, если вы когда-либо захотите сделать ваше приложение доступным для сотовых или даже мороженого сэндвич, так как эти системы убивают приложение, если есть какой-либо доступ к сети в потоке пользовательского интерфейса.

  • 0
    Спасибо, это была полезная информация!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню