Определение onCreate () VS onRestartingFromBackGround () в приложении для Android - PullRequest
1 голос
/ 20 марта 2012

У меня небольшая проблема с разрабатываемым Android-приложением.

Мне нужно запускать некоторый код всякий раз, когда происходит любое из этих двух событий:

1.  The app is NOT running in the background, so the user launches it.
2.  The app IS already running in the background, so the user is really 
    just re-opening it.
(I only need to run the code once, not twice.)

Независимо от того, куда я помещаю вызов своего кода (onCreate, onStart, onRestart, onResume и т. Д.), У меня всегда возникают нежелательные эффекты:

A. My code gets run twice when #2 happens.
B. My code runs even when the user is just moving from 
   MAIN to a SUB-ACTIVITY, then back to MAIN again.
C. My code doesn't run at all.

Разве я не могу провести какое-то различие, чтобы определить: onCreate () и onRestartingFromBackGround ()?

Я думал, что смогу использовать onRestart (), но я был ОЧЕНЬ удивлен, увидев, что onRestart () работает даже тогда, когда я #B. (Действительно ли #B действительно считается "перезапуском" моего приложения ????)

1 Ответ

0 голосов
/ 27 июля 2012

С точки зрения чистой Java, вы можете использовать поток загрузки для первого нажатия иконки.Этот поток загрузки может опрашивать телефон, чтобы увидеть, работает ли основной поток активности в настоящее время или нет, а затем из вашего потока загрузки перейти к правильному фрагменту кода.Что касается ANDROID, я думаю, что вы будете опрашивать имя процесса или идентификатор процесса ... кто-нибудь когда-либо опрашивал ОС на наличие процессов ??

...