2012-03-28 87 views
0

我得到這個例外在logcat中:IntentService找不到

Unable to start service Intent { cmp=com.thePackage.me/com.thePackage.c2dm.RegistrationService (has extras) }: not found 

下面是IntentService。現在測試我只是發出日誌消息

public class RegistrationService extends IntentService { 

    public RegistrationService(){ 
     super("NAME"); 
    } 
    public RegistrationService(String name) { 
     super(name); 

    } 

    @Override 
    protected void onHandleIntent(Intent intent) { 
     Log.d("RegistrationService", "onHandleIntent INVOKED"); 
     System.out.println(intent.getDataString()); 
    } 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     System.out.println(intent.getDataString()); 
     return super.onStartCommand(intent, flags, startId); 
    } 

} 

正在生成此異常爲什麼我開始從BroadcastReciever這個服務以這種方式

Intent serviceIntent = new Intent(context, RegistrationService.class); 
serviceIntent.putExtra("REG_ID", reg_Id); 
serviceIntent.putExtra("DEVICE ID", manager.getDeviceId()); 
context.startService(serviceIntent); 

?我需要在Manifest中聲明嗎?

回答

0

正確,您必須在您的Manifest文件中聲明服務,即使它不在您的應用程序名稱空間中。例如,如果我們想使用Urban Airship Push服務,我們必須聲明它:

<service android:name="com.urbanairship.push.PushService" /> 
+0

對於我的服務,「android:name」會是什麼? '' – prometheuspk 2012-03-28 07:36:16

+0

是的,名稱始終是完全限定的Java類名稱,或者如果組件位於您自己的應用程序名稱空間內,相對於您的應用程序包(例如,如果com.myapp是您的應用程序名稱空間,'.services.MyService'將被分解爲'com.myapp.services.MyService') – Matthias 2012-03-28 07:39:31

+0

它可以工作。謝謝。第一次使用服務和接收器 – prometheuspk 2012-03-28 07:50:23