<分区>
我试图从我的应用程序打开电子邮件应用程序,但出现错误。
Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag.
问题是,我设置了 FLAG_ACTIVITY_NEW_TASK。 我也尝试过 addFlags
这是我的代码:
private void mailTo(String mail) {
Intent i = new Intent(Intent.ACTION_SEND).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.setType("message/rfc822");
i.putExtra(Intent.EXTRA_EMAIL , new String[]{mail});
try {
context.startActivity(Intent.createChooser(i, ""));
} catch (ActivityNotFoundException ex) {
Toast.makeText(context, ex.getMessage(), Toast.LENGTH_LONG).show();
}
}
我必须指出,在同一个类中,我有更多有效的 Intent Actions。
private void callTo(String number) {
Intent callIntent = new Intent(Intent.ACTION_CALL).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
callIntent.setData(Uri.parse("tel:" + number));
context.startActivity(callIntent);
}
和:
private void smsTo(String phoneNumber) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("sms:" + phoneNumber)).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}