2013-07-15 3 views
1

Я разработал Android сервис, который я автозапуском со следующим кодом:Запуск 2 экземпляров одной и той же службы?

AndroidManifest.xml:

<!-- Declare Boot Completed Broadcast Receiver, For Service Auto-Start on Boot --> 
    <receiver android:name=".utils.os.ServiceAutoStart"> 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED"/> 
     </intent-filter> 
    </receiver> 

ServiceAutoStart.java:

public class ServiceAutoStart extends BroadcastReceiver 
{ 

    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     // Start Patch Service On Boot 
     context.startService(new Intent(context, PatchService.class)); 
    } 
} 

Кроме того, у меня есть «Средство просмотра», которое запускается и привязывается к службе с помощью функций startService() и bindService(). По большей части все работает так, как ожидалось. Недавно я заметил, что если я немедленно открою приложение «Просмотр», как только загрузится мое Android-устройство, я, похоже, создаю 2 экземпляра службы (см. Рисунок ниже). Я не думал, что можно создать 2 экземпляра одной и той же службы. Что здесь происходит? Я неправильно интерпретирую то, что вижу в DDMS?

enter image description here

ответ

1

я, кажется, чтобы создать 2 экземпляра службы (см рисунок ниже)

Если вы имеете в виду ваш полу-отредактированный список отладочными процессов на левой стороне, они два отдельных приложений. Один - com.XXXX.service, а один - com.XXXX.serviceremote.

Я не думаю, что это было возможно создать 2 экземпляра одного и того же сервиса

Это не так. Это отдельные экземпляры отдельных сервисов в отдельных приложениях.

+0

Будет ли процесс, который обрабатывает код автозапуска, отдельно от службы в DDMS? Это то, что я вижу? –

+0

@JesseJ: Нет. Вы написали и установили три отдельных приложения. Вы можете увидеть их имена пакетов в DDMS (отредактированные на снимке экрана). Эти приложения, предположительно, не попали туда с помощью эльфийской магии или вне работы инопланетян. Они там, потому что вы их написали, вы их установили, и вы запускаете код, который запускает все три из них. Почему вы это сделали, и чего вы ожидаете из этих трех приложений, я не могу сказать. – CommonsWare

+0

@JesseJ: Ваш вопрос и комментарий предполагают, что вы думаете, что должно быть только одно приложение. Есть три приложения. Если вы не знаете, что такое эти приложения или почему они там, удалите их с вашего устройства, а затем посмотрите, начинаете ли вы получать ошибки/предупреждения в LogCat, привязанные к этим таинственным дополнительным приложениям. – CommonsWare

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