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中看到的內容嗎?
處理自動啓動代碼的進程是否與DDMS中的服務分開顯示?那是我所看到的嗎? –
@JesseJ:不,你已經編寫並安裝了三個獨立的應用程序。你可以在DDMS中看到他們的軟件包名稱(在你的截圖中編輯)。這些應用程序大概沒有通過精靈魔法或工作空間外星人到達那裏。他們在那裏是因爲你寫了他們,你安裝了他們,而且你正在運行啓動他們三個的代碼。爲什麼你這樣做,以及你期望從這三個應用程序中得到什麼,我不能說。 – CommonsWare
@JesseJ:你的問題和評論表明你認爲應該只有一個應用程序。有三個應用程序。如果您不知道這些應用是什麼或者他們爲什麼在那裏,請從您的設備上卸載它們,然後查看您是否在LogCat中獲得與這些神祕額外應用綁定的錯誤/警告。 – CommonsWare