Geri çağrı işleyicisinin mekanizmasını anlamaya çalışıyorum. Handle() yöntemi nasıl çağrılır? Swing uygulamasında özel geri arama işleyicisinin (JASS Giriş Modüllerinde kullanılanlar dışında) kullanımıyla ilgili bir örnek verilebilir mi?Özel Geri Çağırma İşleyicisi
5
A
cevap
9
Geri arama işlemek için bir arabirim tanımlayın.
public interface ServiceListener<T> {
void callback(T result);
}
ServiceListener'ı parametre olarak alan ve geçersiz değer döndüren bir yöntem tanımlayın.
Public void runInBackground(ServiceListener listener) {
...code that runs in the background...
listener.callback(...data to return to caller...);
}
Ve artık ana koddan yapabilirsiniz:
runInBackground(new ServiceListener() {
@Override
public void callback(..returned data...) {
...Do stuff with returned data...
}
});
3
Bu bir Android uygulamasından AsyncTask kullanarak bir web sunucusu bilgilerini talep etmek için temel bir örnektir.
İlk önce async sınıfını tanımlayın. Yapıcının, sonucu bir kez yayınlamak için kullandığımız bir dinleyici aldığını unutmayın. o GUI durdurmak için gitmiyor olarak çağrı ne kadar sürdüğünü endişe duymadan
public class Server {
public void queryServer(final String url, final DialogListener service) {
// Simulate slow network...
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
new Webservice(service).execute(url);
}
}
Biz şimdi bizim faaliyeti içinde bu kodu kullanabilirsiniz: çeşitli ağ iletişim sağlamak üzere
public class Webservice extends AsyncTask<String, Void, String> {
private DialogListener dialogListener;
public Webservice(final DialogListener dialogListener) {
this.dialogListener = dialogListener;
}
@Override
protected String doInBackground(final String... strings) {
// We cant trigger onComplete here as we are not on the GUI thread!
return "";
}
protected void onPostExecute(final String result) {
dialogListener.onComplete(result);
}
}
Temel sunucu sınıfı async çalıştırıldığı gibi.
Server s = new Server();
// Async server call.
s.queryServer("http://onto.dk/actions/searchEvents.jsp?minLatE6=55640596&minLngE6=12078516&maxLatE6=55642654&maxLngE6=12081948", new DialogListener() {
@Override
public void onComplete(final String result) {
toast("complete");
}
@Override
public void onError() {
toast("error");
}
});
İlgili konular
- 1. XS'de Geri Çağırma geri çağırma oluşturma
- 2. Google plus özel paylaşım düğmesi geri çağırma
- 3. Geri çağırma işlevlerinden gelen değişkenleri geri alma
- 4. passport.initialize() middleware, özel geri çağırma için ifade 4.10 için kullanılmaz
- 5. Android onPictureTaken geri çağırma, Bitmap.decodeByteArray
- 6. couchdb özel kimlik doğrulama işleyicisi
- 7. passportjs hata geri çağırma istisna atma
- 8. extern "Statik geri çağırma fonksiyonu için" C "
- 9. Arama özel istifi korunma özel yöntem çağırma
- 10. Birden fazla geri arama sorgu işleyicisi?
- 11. WCF geri çağırma, proxy ve iş güvenliği
- 12. Derleme geri çağırma nasıl iptal edilir
- 13. Tornado AsyncHTTPClient geri çağırma: Ekstra parametreler?
- 14. jQuery aktarım efekti ve geri çağırma işlevi
- 15. Google reCAPTCHA veri geri çağırma çalışmıyor
- 16. jQuery form eklentisi başarı geri çağırma yürütülüyor
- 17. Java Uygulaması'nda JavaScript geri çağırma nasıl kaydedilir?
- 18. Javascript: geri çağırma işlevine parametrelere nasıl geçilir
- 19. Prototip geri çağırma işlevleri yutulma istisnaları
- 20. PHP değişkenini JavaScript ile Geri Çağırma
- 21. NodeJS Olayı bitirmek için geri çağırma bekle
- 22. JavaScript geri çağırma işlevi hata atar firefox
- 23. pinec ile cdecl geri çağırma nasıl kullanılır
- 24. Önyükleme önyükleme çağrısı geri çağırma Kullanılıyor
- 25. Geri çağırma ile PHP eşzamansız cURL
- 26. Webpack Karma Istanbul TypeScript için Geri Çağırma
- 27. Event.respondithSonum bittiğinde (Event.respondithwith() için geri çağırma
- 28. Geri çağırma tetikleyicilerini RhinoMocks ile kullanma
- 29. Geri çağırma yönteminde System.Threading.Timer nasıl durdurulur
- 30. Blok geri çağırma kullanılırken nesne nasıl bırakılır
Bir veya iki somut örneğe ihtiyacım var. Biraz detaylandırır mısın? – Partha
Eğer herhangi bir yardım olursa, size bir Android örneği verebilirim? – slott
@slott: Evet lütfen! – Zolomon