Herkese merhabalar,

Android'de basitçe, bir thread ile ekrana toast mesajı bastırmak istiyorm ancak yazdığım kodun neresinde hata var ya da androidle alakalı olarak nereye uymuyorum tam olarak çözemedim ve uygulama çalışmadı.

Kodum aşağıdaki gibidir.


Thread threadNesne = new  Thread()
        {
            @Override
            public void run()
            {

try {

Thread.sleep(1000);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                finally{
                    Toast.makeText(MainActivity.this, "Merhaba Thread", 1000).show();
                }
            }
        };

threadNesne.start();

Şimdiden yardımlarınız için teşekkürler.

soruldu: 03 Eki '12, 07:22

lastarabos's gravatar image

lastarabos
1.8k122742
cevap kabul oranı: 29%

değiştirildi: 25 May '13, 09:03


thread içinde toast kullanırsan hata verir. Onun için toast kısmını şu şekilde yazdırmalısın.

<activity ismi>.this.runOnUiThread(new Runnable() {
            public void run() {
                           Toast.makeText(MainActivity.this, "Merhaba Thread", 1000).show();
                                         }
                                   };

Başka yöntemleri var mı bilmiyorum ama benim kullandığım yöntem bu... Kolay Gelsin.

permanent link

cevaplandı: 03 Eki '12, 07:35

creseos's gravatar image

creseos
2.0k468187
cevap kabul oranı: 37%

değiştirildi: 03 Eki '12, 07:36

Çok sağol cevabın ve ilgin için, sebebi Thread içinde UI'lerine erişelememe gibi bir durumdan ötürü mü acaba?

(03 Eki '12, 07:37) lastarabos lastarabos's gravatar image

Rica ederim

Evet sanırsam... Ben de çok uzman değilim yeni sayılırım. Daha yakın zamanlar da ben de bu sorunlarla çok karşılaştım oradan biliyorum. Arka planda bu işlemleri yapamıyor.

(03 Eki '12, 07:46) creseos creseos's gravatar image
1

Sorduğum sorularda buradan çok fazla sonuç alamıyorum. Galiba herkesin işi oluyor ve online olamıyor ya da cevap vermek istemiyorlar. Genelini sonradan kendim çözüyorum.

(03 Eki '12, 07:47) creseos creseos's gravatar image
1

<activity ismi=""> buraya activity isminizi yazacaksınız yani mesela activity isminiz MainActivity diyelim

MainActivity.this.runOnUiThread(new Runnable() { public void run() {

Toast.makeText(MainActivity.this, "Merhaba Thread", 1000).show();

} };

(03 Eki '12, 07:53) creseos creseos's gravatar image

Yok onu yaptım orada sorun yok ancak, bu Thread yerine mi kullanılıyor yoksa ilk gönderdiğim kod parçasında Thread içerisidne toast... ile devam eden satır yerine mi kullanılacak?

Hoş, her iki şekilde de hata alıyorum.

(03 Eki '12, 08:00) lastarabos lastarabos's gravatar image
1

thread içinde kullanmanız gerekiyor. yani o hata veren satırları bu dediğim method içine alacaksınız

(04 Eki '12, 01:12) creseos creseos's gravatar image
6 yorumdan 5 tanesi gösteriliyor hepsini göster

ben de bildiğim kadarını aktarayım: Android uygulamaları varsayılan olarak main thread'de koşar. Bu thread'de ui(user interface/grafik arabirimi) işlemlerini üstlenir. Farklı bir thread'den herhangi bir ui işlemi(bir kontrole ulaşma, dialog gosterme vs) yaparsanız kaynak paylaşımı kısıtlamasından doğan hata fırlatılır. Actvity sınıfının runOnUiThread metoduna ui işlemi barındıran runnable örneği parametre geçilerek farklı thread'lerin görsel kaynakları kullanması olanaklı kılınır.

Android ortamında asenkron işlemler için AsyncTask sınıfı vardır; geliştiriler thread'lerle uğramasın diye. Burda güzel anlatım mevcut: http://dev114.blogspot.com/2013/04/asynctaskden-deger-dondurmek.html

permanent link

cevaplandı: 27 May '13, 07:43

gturedi's gravatar image

gturedi
2.8k41538
cevap kabul oranı: 26%

değiştirildi: 27 May '13, 07:43

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:

×817

Soruldu: 03 Eki '12, 07:22

Görüntüleme: 1,547 kez

Son güncelleme: 27 May '13, 07:43

powered by BitNami OSQA