0

我有一个应用程序可以启动多个 Intent 来发送电子邮件、SMS 等。在 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);
4

1 回答 1

0

这是因为您无法在较新版本的 android 中通过任何 UI 活动进行网络操作。按照链接使其工作。

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) {
      }
}   
于 2013-01-23T13:23:08.037 回答