android - Why is the email Intent not working from Common (non Activity) class -
this code works in activity class, if move code common (non activity) class i'm getting error:
calling startactivity() outside of activity context requires flag_activity_new_task flag. want?
here code:
public static void emailintend(context context) { intent emailintent = new intent(intent.action_sendto, null); emailintent.putextra(intent.extra_subject, context.getstring(r.string.string_email_send_feedback_subject)); string[] receipients = new string[1]; receipients[0] = context.getstring(r.string.string_email); emailintent.putextra(android.content.intent.extra_email, receipients); emailintent.addflags(intent.flag_activity_new_task); context.startactivity(intent.createchooser(emailintent, "send email developer...")); }
and how calling activity:
common.emailintend( getapplicationcontext() );
i tried replacing getapplicationcontext()
this
, no help.
kindly, tell me if doing not correct.
the problem you're calling addflags(intent.flag_activity_new_task)
on wrong intent.
that, combined using getapplicationcontext()
, causing error.
the call intent.createchooser()
returns new intent, , that's 1 needs flag_activity_new_task
flag, since it's 1 you're passing startactivity()
.
note flag_activity_new_task
wasn't needed if passed in activity context method (this
in activity);
also note had modify code bit chooser work correctly, original code didn't work me, in activity.
the following code works me, using getapplicationcontext()
context passed in:
public static void sendemail(context context){ string uritext = "mailto:test@gmail.com" + "?subject=" + uri.encode("test subject"); uri uri = uri.parse(uritext); intent emailintent = new intent(intent.action_sendto, uri); intent = intent.createchooser(emailintent, "send email developer..."); i.addflags(intent.flag_activity_new_task); context.startactivity(i); }
references:
Comments
Post a Comment