Service Intent must be explicit

2016-11-25  本文已影响17人  于阗
Intent intent = new Intent();
intent.setAction("xxx");
startService(intent);

有些时候我们使用Service的时需要采用隐私启动的方式,但是Android 5.0一出来后,其中有个特性就是Service Intent must be explitict,也就是说从Lollipop开始,service服务必须采用显示方式启动。

解决办法
1、参考代码如下:

Intent mIntent = new Intent();
mIntent.setAction("XXX.XXX.XXX");//你定义的service的actionmIntent.setPackage(getPackageName());//这里你需要设置你应用的包名context.startService(mIntent);

2、将隐式启动转换为显示启动:--参考地址:http://stackoverflow.com/a/26318757/1446466

Intent mIntent = new Intent();
mIntent.setAction("XXX.XXX.XXX");
Intent eintent = new Intent(getExplicitIntent(mContext,mIntent));
context.startService(eintent);
上一篇下一篇

猜你喜欢

热点阅读