2012-12-03 26 views
0

我有一種服務,用於在用戶不做其他事情時上傳選定的文件。它在我的應用程序告訴它時開始,並在我的應用程序告訴它時停止。但出於某種原因,我使用其他應用程序在看似隨機的時間獲得了我的服務啓動通知。有沒有一種方法可以確定我的服務啓動的是什麼?Android - 我的服務是什麼開始的?

它是標準服務,它擴展了Service,並且綁定到了我的UploadScreenActivity。

的的onCreate很簡單:

public void onCreate() { 
    instance = this; 
    if(connectivityManager == null){ 
      connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 
    } 
    mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); 

    Toast.makeText(this, "Service started", Toast.LENGTH_SHORT).show(); 
} 

這「服務啓動」,而瀏覽其它應用程序的通知出現在看似隨機的時間。

爲我服務的代碼是基於關閉在服務文檔的本地服務樣本:http://developer.android.com/reference/android/app/Service.html

+0

你的問題還不清楚...你能分享你的代碼嗎? –

回答

0

,系統將無法自行啓動你的服務。應用程序是否在廣播接收器中從外部監聽?如果沒有,你必須在你的代碼的某個地方啓動它。我會加強記錄並密切關注它。或者將事件發佈到錯誤記錄服務(bugsense,acra等)。

代碼的哪些部分啓動該服務?我會從那裏開始。奧卡姆剃刀。

0

是否爲您的服務定義了一個意圖過濾器,允許其他應用程序隱式啓動您的服務。 此外,來自android devlopers的此參考可能有所幫助: android:exported 其他應用程序的組件是否可以調用服務或與其交互 - 如果可以,則爲「true」,否則爲「false」。當值爲「false」時,只有具有相同用戶ID的相同應用程序或應用程序的組件才能啓動該服務或綁定到該服務。