我有一个代码,会通过选择所需的应用程序来提示用户发送消息,如何检测用户是否实际从选项中进行了选择,还是按了后退?
我试图检查意图是否返回了某些内容,但是运行异常,因此无法跟踪。
此外,我尝试使用startActivityForResult
运行意图,我在onActivityResult中注意到,即使用户选择了结果,结果也始终为0(RESULT_CANCELED
)。
答案 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);