2016-11-25 52 views
1

我有一个Activity,我开始startActivity申请选择器。returnActivity events当调用startActivity方法

问题:如何等待完成父级活动直到用户选择了首选邮件应用程序?

Uri uri = Uri.parse("mailto:" + "[email protected]") 
       .buildUpon() 
       .appendQueryParameter("subject", "subject") 
       .appendQueryParameter("body", "body") 
       .build(); 

Intent emailIntent = new Intent(Intent.ACTION_SENDTO, uri); 
startActivity(Intent.createChooser(emailIntent, "chooser Title")); 

finish(); 
+0

这没有回调。 –

回答

2

如前所述in this post,你可以使用,而不是IntentChooser IntentPicker

Intent intentPick = new Intent(); 
intentPick.setAction(Intent.ACTION_PICK_ACTIVITY); 
intentPick.putExtra(Intent.EXTRA_TITLE, "Launch using"); 
intentPick.putExtra(Intent.EXTRA_INTENT, emailIntent); 
this.startActivityForResult(intentPick, REQUEST_CODE_MY_PICK); 
// You have just started a picker activity, 

然后你就可以监听通过在活动中加入以下回调方法的意图选秀的结果:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    if (requestCode == REQUEST_CODE_MY_PICK) { 
     // start the activity the user picked from the list 
     startActivity(data); 

     //you can finish() your activity here 
    } 
} 
+0

如何避免onActivityResult的问题:“此处不允许注释”? – jublikon

+0

我想你在错误的地方添加了onActivityResult,例如用另一种方法。它应该直接在你的活动课上 –

相关问题