Service異常:Service Intent must be explicit

JeromeLiee發表於2016-11-14

今天在做AIDL的時候,碰到這麼一個異常:

java.lang.IllegalArgumentException: Service Intent must be explicit
翻譯過來就是——非法引數異常:服務意圖必須是明確的。

這個異常在5.0之前是沒有的,估計是為了安全考慮。既然異常提示為服務意圖必須是明確的,那麼就設定為明確的,之前的程式碼為:

public void onReceive(Context context, Intent intent) {
    Intent serviceIntent = new Intent();    
    serviceIntent.setAction("com.duk3r.eortologio2.MyService");
    context.startService(serviceIntent);
}

改為如下程式碼即可:

Intent serviceIntent = new Intent(context,MyService.class);
context.startService(serviceIntent);

或者:

Intent bi = new Intent("com.duk3r.eortologio2.MyService");
bi.setPackage("com.duk3r.eortologio2");

問題得到解決。

相關文章