Android AsyncTask getting error -
i little new connecting internet apps got error, , codes down here.
08-28 14:43:29.705: e/androidruntime(17341): fatal exception: asynctask #1 08-28 14:43:29.705: e/androidruntime(17341): java.lang.runtimeexception: error occured while executing doinbackground() 08-28 14:43:29.705: e/androidruntime(17341): @ android.os.asynctask$3.done(asynctask.java:200) 08-28 14:43:29.705: e/androidruntime(17341): @ java.util.concurrent.futuretask$sync.innersetexception(futuretask.java:274) 08-28 14:43:29.705: e/androidruntime(17341): @ java.util.concurrent.futuretask.setexception(futuretask.java:125) 08-28 14:43:29.705: e/androidruntime(17341): @ java.util.concurrent.futuretask$sync.innerrun(futuretask.java:308) 08-28 14:43:29.705: e/androidruntime(17341): @ java.util.concurrent.futuretask.run(futuretask.java:138) 08-28 14:43:29.705: e/androidruntime(17341): @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1088) 08-28 14:43:29.705: e/androidruntime(17341): @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:581) 08-28 14:43:29.705: e/androidruntime(17341): @ java.lang.thread.run(thread.java:1019) 08-28 14:43:29.705: e/androidruntime(17341): caused by: java.lang.runtimeexception: can't create handler inside thread has not called looper.prepare() 08-28 14:43:29.705: e/androidruntime(17341): @ android.os.handler.(handler.java:121) 08-28 14:43:29.705: e/androidruntime(17341): @ android.app.dialog.(dialog.java:101) 08-28 14:43:29.705: e/androidruntime(17341): @ android.app.alertdialog.(alertdialog.java:63) 08-28 14:43:29.705: e/androidruntime(17341): @ android.app.alertdialog.(alertdialog.java:59) 08-28 14:43:29.705: e/androidruntime(17341): @ android.app.alertdialog$builder.create(alertdialog.java:807) 08-28 14:43:29.705: e/androidruntime(17341): @ android.app.alertdialog$builder.show(alertdialog.java:822) 08-28 14:43:29.705: e/androidruntime(17341): @ com.makkuzu.gps.tracker.main.uyaripencerem(main.java:129) 08-28 14:43:29.705: e/androidruntime(17341): @ com.makkuzu.gps.tracker.main.access$2(main.java:124) 08-28 14:43:29.705: e/androidruntime(17341): @ com.makkuzu.gps.tracker.main$savedatatask.doinbackground(main.java:108) 08-28 14:43:29.705: e/androidruntime(17341): @ com.makkuzu.gps.tracker.main$savedatatask.doinbackground(main.java:1) 08-28 14:43:29.705: e/androidruntime(17341): @ android.os.asynctask$2.call(asynctask.java:185) 08-28 14:43:29.705: e/androidruntime(17341): @ java.util.concurrent.futuretask$sync.innerrun(futuretask.java:306) 08-28 14:43:29.705: e/androidruntime(17341): ... 4 more
private class savedatatask extends asynctask<url, integer, long> { protected long doinbackground(url... urls) { if(kullanicikontrol()){ try { simpledateformat sdf = new simpledateformat("yyyy/mm/dd hh:mm"); string currentdateandtime = sdf.format(new date()); arraylist<namevaluepair> namevalpairs = new arraylist<namevaluepair>(); namevalpairs.add(new basicnamevaluepair("name", username.gettext().tostring())); namevalpairs.add(new basicnamevaluepair("pass", passone.gettext().tostring())); namevalpairs.add(new basicnamevaluepair("time", currentdateandtime)); httpclient httpclient = new defaulthttpclient(); httppost httppost = new httppost( "http://www.mywebsite.com/yeni_kayit.php"); httppost.setentity(new urlencodedformentity(namevalpairs)); httpclient.execute(httppost); islemtamam(); } catch (exception e) { string icerik = "bilgiler kaydedilemedi, internet bağlantınızın olduıundan emin olunuz."; uyaripencerem("uyarı! ",icerik); } } return (long) 0; } protected void onprogressupdate(integer... progress) { } protected void onpostexecute(long result) { } }
uyaripencerem
private void uyaripencerem(string baslik, string icerik){ builder uyaripenceresi = new alertdialog.builder(this); uyaripenceresi.settitle(baslik); uyaripenceresi.setmessage(icerik); uyaripenceresi.setcancelable(true); uyaripenceresi.show(); }
and kullanicikontrol
private boolean kullanicikontrol() { // todo auto-generated method stub // http post try { string result = ""; arraylist<namevaluepair> namevalpairs = new arraylist<namevaluepair>(); namevalpairs.add(new basicnamevaluepair("name", username.gettext().tostring())); httpclient httpclient = new defaulthttpclient(); httppost httppost = new httppost( "http://mywebsite.com/kullanici_kontrol.php"); httppost.setentity(new urlencodedformentity(namevalpairs)); httpresponse response = httpclient.execute(httppost); httpentity entity = response.getentity(); inputstream = entity.getcontent(); try { bufferedreader reader = new bufferedreader( new inputstreamreader(is, "iso-8859-1"), 8); stringbuilder sb = new stringbuilder(); string line = null; while ((line = reader.readline()) != null) { sb.append(line + "\n"); } is.close(); result = sb.tostring(); } catch (exception err) { } try { jsonarray jarray = new jsonarray(result); (int = 0; < jarray.length(); i++) { jsonobject json_data = jarray.getjsonobject(i); string icerik = "böyle bir kullanici zaten mevcut lütfen farklı bir kullanıcı adı deneyin."; uyaripencerem("uyarı! ", icerik); return false; } } catch (jsonexception er_json) { } } catch (exception er) { } return true; }
and islemtamam code
private void islemtamam() { builder uyaripenceresi = new alertdialog.builder(this); uyaripenceresi.settitle("İşlem tamam! "); uyaripenceresi.setmessage("bilgiler başarıyla kaydedilmiştir. \nkullanıcı adınız :" + username.gettext().tostring() + "\nşifreniz:"+ passone.gettext().tostring()+ "\ntelefon konumunuzu öğrenmek için \ntelefonumnerede.makkuzu.com web sitesini ziyaret ediniz. "); uyaripenceresi.setcancelable(true); uyaripenceresi.setpositivebutton("tamam",new dialoginterface.onclicklistener() { public void onclick(dialoginterface dialog,int id) { somedata=getsharedpreferences(filename,0); editor myeditor=somedata.edit(); myeditor.putstring("name", username.gettext().tostring()); myeditor.putboolean("isfirtstime", false); myeditor.commit(); startservice(new intent(main.this, gpsservice.class)); main.this.finish(); } }); uyaripenceresi.show(); }
thanks help...
this uyaripencerem("uyarı! ", icerik)
displays alertdialog. uyaripencerem("uyarı! ", icerik)
called form doinbackground
doinbackground
invoked on background thread. cannot update ui doinbackground
.
return result of background computation in doinabckground
. result of doinbackground
computation param onpostexecute
. based on result update ui in onpostexecute
for more info check docs
http://developer.android.com/reference/android/os/asynctask.html
Comments
Post a Comment