Android Email Intent导致4.1 Jelly Bean强制关闭

时间:2012-12-06 17:07:42

标签: android email android-asynctask

我有一个应用程序启动了几个Intent来发送电子邮件,短信等。在Android 4.0.4及更早版本中,所有设备似乎运行良好,但是在Android 4.1及更高版本中,应用程序崩溃,并且没有发送任何异常logcat。我可以在4.1模拟器中重现这一点。例如,以下是我用来发送电子邮件的代码。

Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.putExtra(Intent.EXTRA_SUBJECT, email.getSubject());
emailIntent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(email.getContent()));
emailIntent.putExtra(Intent.EXTRA_EMAIL, getRecipients(email.getTo()));
emailIntent.setType("text/html");
this.startActivityForResult(Intent.createChooser(emailIntent, "Choose Application"),1);

1 个答案:

答案 0 :(得分:0)

这是因为您无法从较新版本的android中的任何UI活动进行网络操作。 Folow this链接使其正常工作。

private class LongOperation extends AsyncTask<String, Void, String> {

      @Override
      protected String doInBackground(String... params) {

Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.putExtra(Intent.EXTRA_SUBJECT, email.getSubject());
emailIntent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(email.getContent()));
emailIntent.putExtra(Intent.EXTRA_EMAIL, getRecipients(email.getTo()));
emailIntent.setType("text/html");
this.startActivityForResult(Intent.createChooser(emailIntent, "Choose Application"),1);

}

            return "Executed";
      }      

      @Override
      protected void onPostExecute(String result) {
                   }

      @Override
      protected void onPreExecute() {
      }

      @Override
      protected void onProgressUpdate(Void... values) {
      }
}