如果我有以下代碼:如果服務多次啓動會發生什麼?
Intent intent = new Intent(this,DownloadService.class);
for(int i=0;i<filesArray.length;i++){
startService(intent);
}
在這段代碼DownloadService
延伸IntentService
。
所以現在當我打電話startService(intent)
這是不是意味着我開始了新的服務,每次startService(intent)
被稱爲或是否意味着DownloadService
運行一次,然後每次我打電話時startService(intent)
它只是通過不同意圖與不同的startId。
這是否有意義,這是哪種情況?
謝謝。它還表示:「startService()方法立即返回,Android系統調用服務的onStartCommand()方法。如果服務尚未運行,系統首先調用onCreate(),然後調用onStartCommand()。因此,如果服務已經在運行,那麼系統將跳過onCreate()方法並僅調用onStartCommand()或者什麼? – bytebiscuit
我真的不知道,但我很確定是這種情況(如果服務已經創建,使得很多人不會調用'onCreate()')。應該很容易確定是否在兩個回調中都放置了Log.i(),並檢查LogCat。 –
剛剛做到了這一點......奇怪的是,它在最後一次startService()調用後啓動了onCreate! – bytebiscuit