Android意图为空

Android意图为空,android,android-intent,Android,Android Intent,我使用以下代码启动应用程序: 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")

我使用以下代码启动应用程序:

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();
我用以下代码关闭打开的应用程序:

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()方法时,我得到了相同的请求代码,但意图为null,结果代码为ACTIVITY\u cancelled

我不明白为什么。

试试这个

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;
        }
    }

onActivityResult在哪里?在我启动另一个应用程序的同一个活动中,您需要从一些积极的用户操作(例如,点击
ListView
行)调用
setResult()
,而不是从
onPause()
这样的地方调用。Commonware我调用了setResult(),您可以在我的问题中看到这一点,我不会在onPause()中关闭应用程序,而是在进行一些计算和网络通信后关闭此应用程序。
setResult(Activity.RESULT\u OK)
,目的在哪里?