Post to wall without feed dialog giving "NetworkOnMainThreadexception" | Android -


i trying post on users wall application without showing feed dialog box. have activity edittext getmessage , button onclick()=posttowall. following question: android facebook post on wall without dialog warnings

here code:

public void posttowall(view v){         string message = getmessage.gettext().tostring();         postmessage(message);            }      public void postmessage(string message){         log.d("test", "testing post wall");         try{             string response;             bundle parameters = new bundle();             parameters.putstring("message", message);                        response = facebook.request("me/feed", parameters, "post");              log.d("test", "got response "+response);              if(response == null || response.equals("")){                 log.v("error", "blank");             }         }         catch(exception e){             e.printstacktrace();         }     } 

below log:

  06-06 20:03:19.726: i/activitymanager(78): displayed com.myapp/.fbshare: +146ms 06-06 20:03:24.816: d/test(736): testing post wall 06-06 20:03:24.828: w/system.err(736): android.os.networkonmainthreadexception 06-06 20:03:24.836: w/system.err(736):  @ android.os.strictmode$androidblockguardpolicy.onnetwork(strictmode.java:1099) 06-06 20:03:24.836: w/system.err(736):  @ java.net.inetaddress.lookuphostbyname(inetaddress.java:391) 06-06 20:03:24.846: w/system.err(736):  @ java.net.inetaddress.getallbynameimpl(inetaddress.java:242) 06-06 20:03:24.846: w/system.err(736):  @ java.net.inetaddress.getallbyname(inetaddress.java:220) 06-06 20:03:24.846: w/system.err(736):  @ libcore.net.http.httpconnection.<init>(httpconnection.java:71) 06-06 20:03:24.846: w/system.err(736):  @ libcore.net.http.httpconnection.<init>(httpconnection.java:50) 06-06 20:03:24.846: w/system.err(736):  @ libcore.net.http.httpconnection$address.connect(httpconnection.java:351) 06-06 20:03:24.846: w/system.err(736):  @ libcore.net.http.httpconnectionpool.get(httpconnectionpool.java:86) 06-06 20:03:24.846: w/system.err(736):  @ libcore.net.http.httpconnection.connect(httpconnection.java:128) 06-06 20:03:24.846: w/system.err(736):  @ libcore.net.http.httpengine.opensocketconnection(httpengine.java:308) 06-06 20:03:24.846: w/system.err(736):  @ libcore.net.http.httpsurlconnectionimpl$httpsengine.makesslconnection(httpsurlconnectionimpl.java:460) 06-06 20:03:24.846: w/system.err(736):  @ libcore.net.http.httpsurlconnectionimpl$httpsengine.connect(httpsurlconnectionimpl.java:432) 06-06 20:03:24.846: w/system.err(736):  @ libcore.net.http.httpengine.sendsocketrequest(httpengine.java:282) 06-06 20:03:24.856: w/system.err(736):  @ libcore.net.http.httpengine.sendrequest(httpengine.java:232) 06-06 20:03:24.856: w/system.err(736):  @ libcore.net.http.httpurlconnectionimpl.connect(httpurlconnectionimpl.java:80) 06-06 20:03:24.856: w/system.err(736):  @ libcore.net.http.httpsurlconnectionimpl.connect(httpsurlconnectionimpl.java:164) 06-06 20:03:24.856: w/system.err(736):  @ com.facebook.android.util.openurl(util.java:193) 06-06 20:03:24.866: w/system.err(736):  @ com.facebook.android.facebook.request(facebook.java:751) 06-06 20:03:24.866: w/system.err(736):  @ com.myapp.fbshare.postmessage(fbshare.java:56) 06-06 20:03:24.866: w/system.err(736):  @ com.myapp.fbshare.posttowall(fbshare.java:47) 06-06 20:03:24.866: w/system.err(736):  @ java.lang.reflect.method.invokenative(native method) 06-06 20:03:24.866: w/system.err(736):  @ java.lang.reflect.method.invoke(method.java:511) 06-06 20:03:24.876: w/system.err(736):  @ android.view.view$1.onclick(view.java:3039) 06-06 20:03:24.876: w/system.err(736):  @ android.view.view.performclick(view.java:3511) 06-06 20:03:24.876: w/system.err(736):  @ android.view.view$performclick.run(view.java:14105) 06-06 20:03:24.876: w/system.err(736):  @ android.os.handler.handlecallback(handler.java:605) 06-06 20:03:24.886: w/system.err(736):  @ android.os.handler.dispatchmessage(handler.java:92) 06-06 20:03:24.886: w/system.err(736):  @ android.os.looper.loop(looper.java:137) 06-06 20:03:24.886: w/system.err(736):  @ android.app.activitythread.main(activitythread.java:4424) 06-06 20:03:24.886: w/system.err(736):  @ java.lang.reflect.method.invokenative(native method) 06-06 20:03:24.896: w/system.err(736):  @ java.lang.reflect.method.invoke(method.java:511) 06-06 20:03:24.896: w/system.err(736):  @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:784) 06-06 20:03:24.896: w/system.err(736):  @ com.android.internal.os.zygoteinit.main(zygoteinit.java:551) 06-06 20:03:24.896: w/system.err(736):  @ dalvik.system.nativestart.main(native method) 

am missing here? grateful help. thanks!

starting 3.0 (i think) system throws exception if attempt use network on main (ui) thread. chose make system encourage developers not put long running tasks (such network operations) on main thread.

in order fix problem need move network operations(e.g. calls postmessage()) background thread. there few approaches. check out asynctask or using handler / thread. many examples can found online if search "android create background threads"

also this tutorial made lars vogel awesome learning stuff.


Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -