E.g .: Birkaç saniye sürecek bir şey yapacak ve kullanıcı arayüzünü dondurmak istemezsin, değil mi? Bir AsyncTask kullanabilirsiniz ama küçük bir donma sorununu çözmek için harici (veya iç) bir sınıf oluşturmak istemezsiniz.İyi bir uygulama, paralel küçük bilinen dondurma işlemi için anonim AsyncTask oluşturuyor mu?
Peki, iyi bir pratice mi? Ben Bitmap'ler sıkıştırarak ve öğeleri içindeki bazı verileri güncelleştirmek için büyük dizi döngü sırasında
package com.example.stackoverflowsandbox;
import android.os.AsyncTask;
public class Foo {
// E.g. before call foo method you change you Activity to loading state.
private void foo() {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(final Void ... params) {
// something you know that will take a few seconds
return null;
}
@Override
protected void onPostExecute(final Void result) {
// continue what you are doing...
Foo.this.continueSomething();
}
}.execute();
}
private void continueSomething() {
// some code...
}
}
Bunun ile karşı karşıya ettik.
Bunun nasıl kaydettiğini görmüyorum:
yerine parçacığı havuzu vasisi kullanmak Bir iç sınıf oluşturma vs herhangi bir iş, sadece korkunç dağınık görünüyor IMO – tyczj
Bu sadece ... ng ne olabilirdi, Aktivite artalana ya da yok edildikten sonra Thread (AsyncTask) çalışmaya devam etmesidir. Ama genel olarak bu korkunç, çünkü anonim sınıf, kodun bir kısmında ödünç alınır. –
sadece okunabilirlik sorusu için, anonim iç sınıftan yaratılan nesnelerin 'OuterClass $ 2' adlı notasyon ile çağrıldığını ve iç sınıfı iç içe başlatmaya başlarsanız, hata ayıklama zor olabilir – Blackbelt