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

来源:互联网 发布:fifa online 3软件 编辑:程序博客网 时间:2024/06/02 02:31

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

隐式启动

<service android:name=".service">    <intent-filer>        <action android:name="com.android.service"/>    <intent-filer></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")

0 0
原创粉丝点击