【问题标题】:onactivityresult() is never calledonactivityresult() 永远不会被调用
【发布时间】:2015-06-30 07:40:45
【问题描述】:

我正在尝试从我的应用程序发送邮件。问题是在成功/不成功地发送电子邮件后它不会返回到活动中,这意味着 onActivityResult() 没有被调用。

这是我的代码:

String[] recipients = {"soham@gmail.com"};
Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));

// prompts email clients only
email.setType("message/rfc822");
email.putExtra(Intent.EXTRA_EMAIL, recipients);

try{
    // the user can choose the email client
    startActivityForResult(Intent.createChooser(email, "Choose an email client from..."), 1);
}catch(android.content.ActivityNotFoundException ex){

}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
    if(requestCode == 1){
        if(resultCode == RESULT_OK){

        }else if (resultCode == RESULT_CANCELED){
        }
    }
}

我检查了this,但不适合我。谁能告诉我我做错了什么。

编辑

我遇到了问题。它可以在 Activity 中正常工作。但它不适用于 FragmentFragmentActivity。所有片段都在强制关闭。你可以说我的应用程序正在后台运行。如何解决这个问题?任何人都有任何想法。

【问题讨论】:

  • 我刚刚对此进行了测试,它进入了onActivityResult(),但它总是进入 RESULT_CANCELED,而 Intent 中没有额外内容。看这里:stackoverflow.com/questions/3778048/…
  • @DanielNugent,当我启动意图时,我的应用程序正在关闭。完成或取消后,它没有调用 onActivityResult() 结果。我从 FragmentActivity 调用它,会不会有问题

标签: java android onactivityresult


【解决方案1】:

如果我正确理解您的问题;

在您的活动的 onActivityResult 部分中,您可以找到您的片段

YourFragment fragment = (YourFragment)getSupportFragmentManager().findFragmentById(R.id.your_framelayout_id);

并使用您的片段的公共方法:

if(fragment != null)
{
   fragment.yourPublicMethod();   
}

在 yourPublicMethod 中,您可以为所欲为。希望对您有所帮助。

【讨论】:

  • 感谢您的回答。我的问题是如果我从 Fragment 或 fragmentActivity 调用 Intent.ACTION_SEND 那么我的应用程序正在关闭或进入后台。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-27
  • 2013-10-12
  • 2012-03-27
  • 2013-08-29
  • 2013-11-03
相关资源
最近更新 更多