2015-11-05 2 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, но намерение равно null, а resultCode - ACTIVITY_CANCELED.

Я не понимаю, почему.

+0

где onActivityResult? – Blackbelt

+0

в той же самой работе, где я запустил другое приложение – just

+0

Вам нужно вызвать 'setResult()' из некоторого положительного действия пользователя (например, нажав строку 'ListView'), а не из какого-либо места, например' 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; 
     } 
    } 
Смежные вопросы