Arka plan görevi tamamlandığında kullanıcının yalnızca bittiğini bilmesini sağlamak için Toast
'u önceden oluşturmak istiyorum.Bir içeriği bir AsyncTask'a nasıl geçiririm?
AsyncTask için yeni bir sınıf yaptım, ancak bu sınıfta getApplicationContext()
kullanamıyorum.
Görevleri çalıştırmak için task.execute(getTempFile(this), getApplicationContext());
kullanıyorum. getTempFile bir File nesnesi döndürür ve içeriği bir Context nesnesi olarak iletmeye çalışıyordum.
Görevlerim, 3 satır AsyncTask<Object, Integer, Integer>
içeriğine sahiptir, böylece içerik ikinci nesnede. Ancak, bu uygulamayı çöker.
Düzenleme
public class LocationActivity extends Activity implements LocationListener {
protected void handleImage(Bitmap thumbnail){
PushDataToServer task = new PushDataToServer();
task.execute(getTempFile(this), getApplicationContext());
}
}
public class PushDataToServer extends AsyncTask<Object, Integer, Integer> {
Context context;
@Override
protected Integer doInBackground(Object... params) {
// TODO Auto-generated method stub
this.context = (Context) params[1];
File file = (File) params[0];
return null;
}
protected void onPostExecute(String result) {
Toast toast = Toast.makeText(this.context, "All done!", Toast.LENGTH_SHORT);
toast.show();
}
}
sonrası Lütfen AsyncTask sınıfı ve ana sınıfı iskeleti daha sonra
ve, kendi
AsyncTask
inşa edildiğinde :) – CodemanSoruyu kod örneği ile güncellendi. – dotty