【问题标题】:Android Intent is nullAndroid 意图为空
【发布时间】:2015-11-08 20:18:59
【问题描述】:

我用这段代码启动一个应用程序:

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。

我不明白为什么。

【问题讨论】:

  • onActivityResult 在哪里?
  • 在我启动其他应用程序的同一个活动中
  • 您需要通过一些积极的用户操作(例如,点击ListView 行)调用setResult(),而不是像onPause() 这样的地方。
  • CommonsWare 我调用了 setResult() 你可以在我的问题中看到这个,我没有在 onPause() 中关闭应用程序,我在一些计算和网络通信后关闭它。
  • setResult(Activity.RESULT_OK),意图在哪里?

标签: android android-intent


【解决方案1】:

试试这个

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-26
    • 2016-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-22
    • 2018-10-20
    • 1970-01-01
    相关资源
    最近更新 更多