2015-11-05 45 views
0

我开始使用此代码的应用程序:Android的意图是空

Intent hasApp = getPackageManager().getLaunchIntentForPackage("appName.app"); 
Intent intent = new Intent(Intent.ACTION_VIEW); 
dataId = response.getdataId(); 
intent.setData(Uri.parse("appName:?pid=" + dataId + "&action=returntoapp")); 
startActivityForResult(intent, Globals.DATA_REQUEST_CODE); 

而且我关闭打开的应用程序使用此代码:

setResult(Activity.RESULT_OK); 
finish(); 

但是,当第一个应用程序调用onActivityResult()方法我得到了相同的requestCode,但意图为空,并且resultCode为ACTIVITY_CANCELED。

我不明白为什么。

+0

哪里是onActivityResult? – Blackbelt

+0

在同一个活动中,我开始了其他应用程序 – just

+0

您需要从某些积极的用户操作(例如,点击一个“ListView”行)调用'setResult()',而不是像'onPause()'这样的地方调用。 – CommonsWare

回答

0

试试这个

String packageName = "com.example.app" 

public static boolean openApp(Context context, String packageName) { 
     PackageManager manager = context.getPackageManager(); 
     try { 
      Intent i = manager.getLaunchIntentForPackage(packageName); 
      if (i == null) { 
       return false; 

      } 
      i.addCategory(Intent.CATEGORY_LAUNCHER); 
      context.startActivity(i); 
      return true; 
     } catch (Exception e) { 
      return false; 
     } 
    }