美文网首页
Service Intent must be explicit

Service Intent must be explicit

作者: 于阗 | 来源:发表于2016-11-25 15:45 被阅读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);
    

    相关文章

      网友评论

          本文标题:Service Intent must be explicit

          本文链接:https://www.haomeiwen.com/subject/wyxwpttx.html