隨筆雜記

             :: 首頁 :: 新隨筆 ::  ::  :: 管理 ::
          有兩種解決方法:
          1、設置Action和packageName:
          參考代碼如下:
          Intent mIntent = new Intent();
          mIntent.setAction("XXX.XXX.XXX");//你定義的service的action
          mIntent.setPackage(getPackageName());//這里你需要設置你應用的包名
          context.startService(mIntent);
          此方式是google官方推薦使用的解決方法。

          2、將隱式啟動轉換為顯示啟動:
          public static Intent getExplicitIntent(Context context, Intent implicitIntent) {
                  PackageManager pm = context.getPackageManager();
                  List<ResolveInfo> resolveInfo = pm.queryIntentServices(implicitIntent, 0);
                  if (resolveInfo == null || resolveInfo.size() != 1) {
                      return null;
                  }
                  ResolveInfo serviceInfo = resolveInfo.get(0);
                  String packageName = serviceInfo.serviceInfo.packageName;
                  String className = serviceInfo.serviceInfo.name;
                  ComponentName component = new ComponentName(packageName, className);
                  Intent explicitIntent = new Intent(implicitIntent);
                  explicitIntent.setComponent(component);
                  return explicitIntent;
              }
          調用方式如下:
          Intent mIntent = new Intent();
          mIntent.setAction("XXX.XXX.XXX");
          Intent eintent = new Intent(getExplicitIntent(mContext,mIntent));
          context.startService(eintent);

          posted on 2016-05-31 13:19 天宇恒星 閱讀(247) 評論(0)  編輯  收藏 所屬分類: Android
          主站蜘蛛池模板: 郎溪县| 龙井市| 安丘市| 德化县| 永春县| 西峡县| 嘉禾县| 盐源县| 建湖县| 张家口市| 华蓥市| 东丽区| 招远市| 衡山县| 陆良县| 阿合奇县| 准格尔旗| 郓城县| 浦北县| 琼海市| 贺州市| 邹平县| 纳雍县| 罗江县| 四会市| 娄底市| 商水县| 镇江市| 承德市| 九寨沟县| 龙游县| 甘南县| 革吉县| 余姚市| 江油市| 古浪县| 乐陵市| 浦北县| 湟源县| 栾城县| 鹤岗市|