onActivityResult不会跨不同的应用程序触发

时间:2014-04-24 16:11:41

标签: android google-glass google-gdk

我使用startActivityForResult / onActivityResult在Google Glass上的两个应用之间进行通信。

致电代码:

Intent intentScan = new Intent("com.github.barcodeeye.SCAN");
intentScan.setPackage("com.github.barcodeeye");
intentScan.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intentScan.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
intentScan.putExtra("SCAN_MODE", "QR_CODE_MODE");
intentScan.putExtra("RESULT_DISPLAY_DURATION_MS", 1000L);
intentScan.putExtra("SAVE_HISTORY", false);
intentScan.putExtra("PROMPT_MESSAGE", "Scan MQTT Config Code");

startActivityForResult(intentScan, 333);

回复代码:

    activity.setResult(Activity.RESULT_OK, (Intent) message.obj);
    activity.finish();

onActivityResult

    if (requestCode == 333 && resultCode == RESULT_OK)
        processQRCode(data);

我通过这两个应用进行了调试,被叫应用转到setResultfinish,但永远不会调用onActivityResult

导致这种情况的原因是什么?

(我正在调用BarcodeEye项目的一个分支,重新启用通过意图调用它的能力:https://github.com/paulpv/BarcodeEye/tree/intent

1 个答案:

答案 0 :(得分:0)

与绝大多数关于在SO上的活动中返回内容的类似问题一样,问题在于我的代码。我在菜单活动中打电话,并在finish()电话后立即拨打startActivityForResult()。显然,这意味着当回复回来时,没有人在倾听。