Merhaba arkadaşlar. Thread ile arkaplanda çalıştırma işlemleri vs. yapabiliyorum. Fakat bazı kodlar thread içinde çalışmıyor. Özellikle mesela adaptörler. Ben örnek veriyorum spinnera adaptör kuruyorum. Dizisine itemleri yüklüyorum fakat setadapter derken eğer thread içindeyse hata veriyor.

O kısmı

<Activityİsmi>.this.runOnUiThread(new Runnable() {

            public void run() {
                                               //Kodlar
                                          }
                                       });

şeklinde yaparsam hata vermiyor o işlemi yapıyor. Fakat bu sefer arka planda çalışmış olmuyor. Yani uygulamayı donduruyor büyük bir işlemse. Tam olarak bu tür kodların da arka planda çalışmasını nasıl sağlayabilirim ?

Teşekkürler

soruldu: 03 Eki '12, 02:58

creseos's gravatar image

creseos
2.0k468187
cevap kabul oranı: 37%

değiştirildi: 03 Eki '12, 02:59


gerçeklediğin adapter sınıfı icinde ui komponentlerine mudahale ettiğin icin hata alıyorsun muhtemelen, hatayı paylasırsan daha net olur durum. burda ui'ı dondurmama adına yapacagın hamle adapter'e verecegin koleksiyonu kaynagından cekme islemini asenkron olarak yurutmen olabilir

permanent link

cevaplandı: 31 Oca '13, 14:04

gturedi's gravatar image

gturedi
2.8k41538
cevap kabul oranı: 26%

ilginiz için teşekkürler. Sorunumu farklı bir yol kullanarak çözmüştüm.

(01 Şub '13, 08:02) creseos creseos's gravatar image

Hocam Runnable'ın mesaj gönderme olayları varya onunla birlikte sınıfta bi tane static handler yaz, mesaj olarak da listeye basacağın verileri gönder o static sınıf içerisinde adaptere doldur verileri.

Örnek:

public void handleMessage(Message message) {
        int islem = message.arg1;
        switch (islem) {
        case 1:
                    gelenListe = message.obj;
            if (gelenListe != null) {
                         //spinner burada yükle.
            }
         }
      }
permanent link

cevaplandı: 01 Şub '13, 08:13

lastarabos's gravatar image

lastarabos
1.8k122742
cevap kabul oranı: 29%

ilginiz için teşekkürler. buna benzer bir yolla sorunumu çözmüştüm. Yani thread içinde hata veren yeri activity.runoithread methodu içine alarak sorunumu çözdüm. İyi çalışmalar.

(01 Şub '13, 08:20) creseos creseos's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×819

Soruldu: 03 Eki '12, 02:58

Görüntüleme: 589 kez

Son güncelleme: 01 Şub '13, 08:20

powered by BitNami OSQA