i have non-activity check internet access using async task. way, code internet access check works correctly in activity. when added code non-activity class, want response saved string , send mainactivity using "startactivityforresult". added toast check if value passing mainactivity, toast shows blank. so, either response not saving int string or not sending mainactivity. i've posted log cat when button click in mainactivity due value being null, app crashes.
logcat 09-26 13:31:26.872: e/androidruntime(22041): fatal exception: main 09-26 13:31:26.872: e/androidruntime(22041): process: com.example.networkping, pid: 22041 09-26 13:31:26.872: e/androidruntime(22041): java.lang.nullpointerexception 09-26 13:31:26.872: e/androidruntime(22041): at com.example.networkping.mainactivity$1.onclick(mainactivity.java:43) 09-26 13:31:26.872: e/androidruntime(22041): at android.view.view.performclick(view.java:4562) 09-26 13:31:26.872: e/androidruntime(22041): at android.view.view$performclick.run(view.java:18918) 09-26 13:31:26.872: e/androidruntime(22041): at android.os.handler.handlecallback(handler.java:808) 09-26 13:31:26.872: e/androidruntime(22041): at android.os.handler.dispatchmessage(handler.java:103) 09-26 13:31:26.872: e/androidruntime(22041): at android.os.looper.loop(looper.java:193) 09-26 13:31:26.872: e/androidruntime(22041): at android.app.activitythread.main(activitythread.java:5388) 09-26 13:31:26.872: e/androidruntime(22041): at java.lang.reflect.method.invokenative(native method) 09-26 13:31:26.872: e/androidruntime(22041): at java.lang.reflect.method.invoke(method.java:515) 09-26 13:31:26.872: e/androidruntime(22041): at com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:839) 09-26 13:31:26.872: e/androidruntime(22041): at com.android.internal.os.zygoteinit.main(zygoteinit.java:655) 09-26 13:31:26.872: e/androidruntime(22041): at dalvik.system.nativestart.main(native method)
non-activity asynctask class public class internet extends asynctask<void, void, boolean>{ string sam; context context; activity activity; public internet(activity ac) { activity = ac; } public boolean isnetworkavailable() { connectivitymanager connectivitymanager = (connectivitymanager) context.getsystemservice(context.connectivity_service); networkinfo activenetworkinfo = connectivitymanager.getactivenetworkinfo(); return activenetworkinfo != null && activenetworkinfo.isconnected(); } @override protected void onpostexecute(boolean result){ if(result){ // toast.maketext(getapplicationcontext(), "success", toast.length_short).show(); sam="1"; intent view = new intent(activity, mainactivity.class); view.putextra("zipcode", sam.tostring()); activity.startactivityforresult(view, 1); } else{ // toast.maketext(getapplicationcontext(), "failure", toast.length_short).show(); sam="0"; intent view = new intent(activity, mainactivity.class); view.putextra("zipcode", sam.tostring()); activity.startactivityforresult(view, 1); } } @override protected boolean doinbackground(void... params) { if (isnetworkavailable()) { try { httpurlconnection urlc = (httpurlconnection) (new url( "http://www.google.com" ).openconnection()); urlc.connect(); int resp = urlc.getresponsecode(); return resp == 200; } catch (ioexception e) { //log.e(log_tag, "error checking internet connection", e); system.out.println("error checking internet connection"+e); } } else { //log.d(log_tag, "no network available!"); system.out.println("no network available!"); } return false; } }
mainactivity public class mainactivity extends activity { button check; string zipcode; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); zipcode = getintent().getextras().getstring("zipcode"); toast.maketext(getapplicationcontext(), zipcode, 3000).show(); check=(button)findviewbyid(r.id.check); check.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { // todo auto-generated method stub //new checkinternetconnection().execute(); //string zipcode = getintent().getextras().getstring("zipcode"); if(zipcode.equals("1")){ toast.maketext(getapplicationcontext(), "success", toast.length_short).show(); }else if(zipcode.equals("0")){ toast.maketext(getapplicationcontext(), "failure", toast.length_short).show(); } } }); }// oncreate } //activity
try using
zipcode = getintent().getstringextra("zipcode");
instead of
zipcode = getintent().getextras().getstring("zipcode");
Comments
Post a Comment