2015-11-05 25 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; 
     } 
    }