Неверно! расширьте класс Application
(IE сделайте свой собственный), затем в методе onCreate()
сделайте это.
//Service is below
Intent serviceIntent = new Intent(getApplicationContext(), PlaylistUpdaterService.class);
startService(serviceIntent);
И возьмите это дерьмо фильтра цели из вашей декларации в файле манифеста. Оставьте как
<service android:name=".PlaylistUpdaterService">
Намерение фильтр следующие потребности быть в вашей домашней деятельности только
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Причина вы делаете это потому, что Application
класс запускается как только приложение, и действует как вид глобального класса, которым управляет инфраструктура android.
Фактически, если вы хотите, чтобы служба запускалась каждый раз, когда вы возвращаетесь на главный экран, вы должны начать сервис в домашних классах onResume()
. Ввод его в приложения onCreate()
начнет запуск только в том случае, если пользователь запускается в первый раз или после того, как запущенный процесс был убит. Или вы можете поместить его в свои домашние классы onCreate()
, но это даже не гарантируется для запуска каждый раз.
Этот метод блокирует пользовательский интерфейс при запуске операции, но поскольку он настроен на просвечивание, никто не может ничего сделать. Есть ли способ избежать блокировки этого пользовательского интерфейса – 2013-01-10 22:56:43
@ Noble6 - обновил мой ответ, чтобы сделать его более понятным. Спасибо за ценный комментарий. – Zelimir 2013-01-11 08:43:28