SORU
6 HAZİRAN 2010, Pazar


Özel bir olay Android uygulaması üzerinde dinleyici

Basit bir olay dinleyici ListView yenilemek için ayarlamak için bir arada istiyorum. Sorun nasıl bir olay oluşturabilir miyim bilmiyorum.

Anahtar veya düğme gibi olaylar basmak için sadece Handler uygulamak gerektiğini biliyorum. Ama aslında her zaman kovulacak olan etkinlik oluşturmak için gereken bu özel durumda uygulamam başka bir çalışan iş parçacığı uyanır ve bir RSS haber listesini yeniler.

Her şeyi yaptım, ama burada sıkışmış. Bu nasıl uygulanacağı konusunda biraz daha bilgi ile herhangi bir öneri ya da link alabilir miyim?

CEVAP
5 ŞUBAT 2012, Pazar


  1. Bir geri arama arabirimi tanımlar

            public interface NewsUpdateListener 
            {
                void onNewsUpdate(<News data to be passed>);
            }
    
  2. RSS alır arka plan iş parçacığı bir kayıt tesis sağlamak

        class <Background processing class name> 
        {
        ....
            ArrayList<NewsUpdateListener> listeners = new ArrayList<NewsUpdateListener> ();
        .... 
            public void setOnNewsUpdateListener (NewsUpdateListener listener) 
            {
                // Store the listener object
                this.listeners.add(listener);
            }
        ....
        }
    
  3. Haberler kullanılabilir olduğunda geri ateş

    ....
    for (listener : listeners) 
    {
        listener.onNewsUpdate(<News data to be passed>);
    }
    ....
    
  4. Dinleyici bir yerde başlatma sırasında kayıt

    ....
        <class <Background processing class object>.registerListener
    (
        new OnNewsUpdateListener() {
            onNewsUpdate(<News Data>) {
                // process news data
                runOnUIThread(new Runnable() {
                    public void run() {
                        // refresh list view
                    }
                }
            }
    }
    ....
    

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ELawshea

    ELawshea

    26 Mayıs 2008
  • Mark Hyder

    Mark Hyder

    6 EKİM 2011
  • SegaAmerica

    SegaAmerica

    5 Mart 2008