Android: возможно ли разместить HTTP-запрос вне onCreate в Activity? - PullRequest
2 голосов
/ 07 декабря 2011

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

Есть предложения?

Ответы [ 3 ]

6 голосов
/ 07 декабря 2011

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

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

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

    ... the rest of onCreate()
}
1 голос
/ 07 декабря 2011

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

0 голосов
/ 07 декабря 2011

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

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

...