
我有以下代码从扩展broadcastReceiver的类发送电子邮件:
Intent emailintent = new Intent(androID.content.Intent.ACTION_SEND);S2Mconfig s2m = new S2Mconfig();Log.d(TAG, "Create Intent for mail to " + address);emailintent.setType("plain/text");emailintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);emailintent.putExtra(androID.content.Intent.EXTRA_EMAIL, s2m.read(thisContext));emailintent.putExtra(androID.content.Intent.EXTRA_SUBJECT, address);emailintent.putExtra(androID.content.Intent.EXTRA_TEXT, body);Log.d(TAG, String.format("Sending mail %s", emailintent.toString()));thisContext.startActivity(Intent.createChooser(emailintent, "Send mail..."));broadcastRecIEver已在清单中注册,我设置了INTERNET权限:
<uses-permission androID:name="androID.permission.INTERNET" />...<receiver androID:name=".SmsReceiver" androID:exported="true" > <intent-filter androID:priority="1000"> <action androID:name="androID.provIDer.Telephony.SMS_RECEIVED" /> <action androID:name="androID.provIDer.Telephony.MMS_RECEIVED" /> </intent-filter> </receiver>日志确认在调用startActivity()之前已设置FLAG_ACTIVITY_NEW_TASK.
尽管如此,我仍然感到恐惧:“调用startActivity()…需要FLAG_ACTIVITY_NEW_TASK标志…
任何线索将不胜感激.
解决方法:
@OverrIDepublic voID onReceive(Context context, Intent intent){ Context appContext = context.getApplicationContext();使用appContext可以启动“正常”活动.描述here是一个示例
public voID sendNotificationEmail(String emailBody) { Intent emailintent = new Intent(Intent.ACTION_SEND); emailintent.setType("text/HTML"); emailintent.putExtra(Intent.EXTRA_EMAIL, notificationRecipIEnts); emailintent.putExtra(Intent.EXTRA_SUBJECT, "MyAppname Error"); emailintent.putExtra(Intent.EXTRA_TEXT, emailBody); Intent emailChooser = Intent.createChooser(emailintent, "An error has occurred! Send an error report?"); emailChooser.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); try { startActivity(emailChooser); } catch (ActivityNotFoundException e) { // If there is nothing that can send a text/HTML MIME type e.printstacktrace(); } }因此,将FLAG_ACTIVITY_NEW_TASK添加到选择器Intent中,而不是发送者中!
总结以上是内存溢出为你收集整理的android-从BroadcastReceiver开始活动全部内容,希望文章能够帮你解决android-从BroadcastReceiver开始活动所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)