Aklımda Kalası Kelimeler

* давайте работать вместе
* Zarf ve Mazruf, Zerafet(xHoyratlık) ile aynı kökten(za-ra-fe) gelir
* Bedesten
* Suç subuta ermiştir - Suç sabit olmuştur

6 Ağustos 2011 Cumartesi

AsyncTask on Android

Süper bir açıklama
Güzel bir örnek
Gayem aklımdan çıkarsa notlarımda kalsın. AsyncTask bizim için Thread ve Handler tiplerini barındıran bir sınıf. Örneğin arka planda WebServisine bağlanmak ve veri çekip gelen veriyi ekranda bir bileşene bağlamak istiyorsunuz. İşte web servisine bir thread ile bağlanırsınız(böylece ekran donmamış olur -5sn donanı android kapıyomuş-) Handler ile de UI threadinde bileşene verileri aktarabiliyorsunuz.


AsyncTask
Thread [ doInBackground() metodunu kullanıyoruz ]
Handler [ onPostExecute() metodunu kullanıyoruz ]


AsyncTask sınıfının jenerik tipleri kullandığınıda ekleyelim:
AsyncTask <TypeOfVarArgParams , ProgressValue , ResultValue>
  1. doInBackground metoduna parametre geçirmek için
  2. TypeOfVarArgParams'ı kullanıyoruz.
  3. ProgressValueis parametresi ile işlem bilgisini geçiriyoruz.
  4. ResultValue ise Thread'in metodundan, Handler'ın onPostExecute metoduna dönen değeri gösteriyor.


 private class DownloadWebPageTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
String response = "";
for (String url : urls) {
DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
try {
HttpResponse execute = client.execute(httpGet);
InputStream content = execute.getEntity().getContent();

BufferedReader buffer = new BufferedReader(
new InputStreamReader(content));
String s = "";
while ((s = buffer.readLine()) != null) {
response += s;
}

} catch (Exception e) {
e.printStackTrace();
}
}
return response;
}

@Override
protected void onPostExecute(String result) {
textView.setText(result);
}
}

public void readWebpage(View view) {
DownloadWebPageTask task = new DownloadWebPageTask();
task.execute(new String[] { "http://www.vogella.de" });

}

Hiç yorum yok: