如何检测用户是否从createChooser选项中选择?

时间:2010-07-20 08:25:50

标签: android

我有一个代码,会通过选择所需的应用程序来提示用户发送消息,如何检测用户是否实际从选项中进行了选择,还是按了后退?

我试图检查意图是否返回了某些内容,但是运行异常,因此无法跟踪。

此外,我尝试使用startActivityForResult运行意图,我在onActivityResult中注意到,即使用户选择了结果,结果也始终为0(RESULT_CANCELED)。

2 个答案:

答案 0 :(得分:3)

从Android的源代码中,您可以看到Intents中选择的Activity根本不是setResult()。应该将其作为一项功能提出要求。

答案 1 :(得分:0)

现在可以使用新的createChooser()和第3个arg:pendingintent.getintentsender()。

示例:

        String aText = e.getText().toString();
        Intent sendIntent = new Intent();
        sendIntent.setAction(Intent.ACTION_SEND);
        sendIntent.putExtra(Intent.EXTRA_TEXT, aText);
        sendIntent.setType("text/plain");
        sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        sendIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);

        //
        Intent receiver = new Intent(this, BroadcastTest.class);
        receiver.putExtra("test", "test");
        PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, receiver, PendingIntent.FLAG_UPDATE_CURRENT);
        Intent intent = Intent.createChooser(sendIntent, "Send email with:", pendingIntent.getIntentSender());
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);