5.0上java.lang.IllegalArgumentException: Service Intent must be explicit异常

Service启动的方式有两种:显式启动、隐式启动。

隐式启动


    
        
    

final Intent serviceIntent=new Intent();
serviceIntent.setAction("com.android.service");


显示启动
final Intent serviceIntent=new Intent(this,service.class);
startService(serviceIntent);
如果在同一个包中。两者都可以用。在不同包时。只能用隐式启动。


需要注意的是在5.0上采用隐式启动时,会出现java.lang.IllegalArgumentException: Service Intent must be explicit异常。也就是说Service的Intent必须明确。

解决方法就是给Intent设置一下具体的包名,指明具体是哪个包启动的Service。

intent.setPackage("com.android.vending")

你可能感兴趣的:(Android)