android - Why Would My Camera Intent Kill The App Only After Opening a Webview? -
so i'm experiencing seems odd me. have activity in application allows users take photo , send it, , works fine on own. however, if go part of application , start web view, , go camera, application killed take picture. have guess or know why is? i'm confused how webview such thing. works every time, without fail, until load webview activity.
void selectimage() { try { intent intent = new intent (intent.action_pick, mediastore.images.media.external_content_uri); startactivityforresult(intent, 0); } catch (exception e) { log.d("exception:", e.tostring()); e.printstacktrace(); } } void takephoto() { try { intent intent = new intent(mediastore.action_image_capture); startactivityforresult(intent, 1); } catch (exception e) { log.d("exception:", e.tostring()); e.printstacktrace(); } } @override protected void onactivityresult(int requestcode, int resultcode, intent data) { try { log.d("result code:", integer.tostring(resultcode)); if(data != null) log.d("data results:", data.getdatastring()); if (resultcode == result_ok && data != null) { if (requestcode == 0 || requestcode == 1) { intent intent = new intent(intent.action_send); intent.putextra(intent.extra_subject, "photo submission android"); intent.putextra(intent.extra_email, new string[]{"a@b.com"}); uri uri = data.getdata(); intent.putextra(android.content.intent.extra_stream, uri); startactivityforresult(intent.createchooser(intent, "send photo!"), 2); } } } catch (exception e) { log.d("exception:", e.tostring()); e.printstacktrace(); } } and webview activity:;
public class activity_webview extends fragmentactivity { static webview m_webview; progressdialog m_progressdialog; boolean m_firstload = true; string m_requesttype = null; string m_orderurl = ""; string m_facebookurl = "https://mobile.facebook.com/"; string m_twitterurl = "https://mobile.twitter.com/"; private class localwebviewclient extends webviewclient { @override public boolean shouldoverrideurlloading(webview view, string url) { return false; } @override public void onpagestarted(webview view, string url, bitmap favicon) { super.onpagestarted(view, url, favicon); try { if (m_firstload) { m_progressdialog = new progressdialog(activity_webview.this); m_progressdialog.settitle("gathering data.."); m_progressdialog.setmessage("one moment please"); m_progressdialog.setcancelable(false); m_progressdialog.show(); m_firstload = false; } } catch (exception e) { e.printstacktrace(); log.d("error:", e.tostring()); } } @override public void onpagefinished(webview view, string url) { try { if (m_progressdialog.isshowing()) m_progressdialog.dismiss(); super.onpagefinished(view, url); } catch (exception e) { e.printstacktrace(); log.d("error:", e.tostring()); } } } @override public void finish() { viewgroup view = (viewgroup) getwindow().getdecorview(); view.removeallviews(); super.finish(); } @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); try { string tempurl = ""; m_requesttype = getintent().getstringextra("requesttype"); switch (m_requesttype) { case "menu": { tempurl = m_orderurl; break; } case "facebook": { tempurl = m_facebookurl; break; } case "twitter": { tempurl = m_twitterurl; break; } default: break; } setcontentview(r.layout.activity_webview); m_webview = (webview) findviewbyid(r.id.webview); m_webview.setwebviewclient(new localwebviewclient()); m_webview.getsettings().setjavascriptenabled(true); m_webview.getsettings().setloadwithoverviewmode(true); m_webview.getsettings().setusewideviewport(true); m_webview.getsettings().setbuiltinzoomcontrols(true); m_webview.loadurl(tempurl); m_firstload = true; } catch (exception e) { e.printstacktrace(); log.d("error:", e.tostring()); } } }
it's memory. web view consumes quite lot, , camera app needs quite lot. can try on emulator, playing size of ram.
actually, camera intent not special: try start rating intent - pattern similar.
Comments
Post a Comment