Anasayfa » Android, Java ve Java Teknolojileri

Android Programlama – Progress Bar, Thread

9 Temmuz 2012 12.538 kez okundu Yorum yok
1 Star2 Stars3 Stars4 Stars5 Stars (1 oy,5 üzerinden : 5,00 )
Loading...

Merhaba arkadaşlar, bu yazımızda daha önceki yazımızda geliştirdiğimiz form uygulamasını biraz daha geliştireceğiz. Bu uygulamamızda progress bar üzerinde duracağız. Bir önceki yazımızı okumayanlar buradan okuyabilir.  Okumak istemeyenler bir önceki uygulamayı indirip üzerinde devam edebilirler.

Diğer yazılarımız;

Bu yazımızın amacı, programımız arka planda bir işle uğraşırken (örneğin veri indirme veya database işlemi) kullanıcıya görsel olarak işin ilerlediğini göstermek. Böylece kullanıcı ne olduğunun farkında olup, işin bitmesini bekleyecek. Ancak biz bu örneğimizde gerçekten uzun bir işlem yapamayacağımız için, arka planda çalışacak olan iş yapmacık olacak.

Kullanıcıya progress bar iki şekilde gösterilebilir. Ya widget olarak ya da Activity nin bir özelliği olarak. Biz activity nin özelliğini kullanacağız. Bu progress bar ekranın ortasında olmayacakta, ekranın başlık kısmında yer alacak.

İlk iş olarak bu özelliği aktif etmemiz gerekiyor. Bunun için onCreate() metodu içinde setContentView() dan önce ve super classı çağırdıktan sonra şu kodları yazmalıyız.

İkinci adım ise bizim arka planda çalışacak işi simule edecek ortamı hazırlamak. Bunun için Activity içine someWork() isminde metot tanımlıyoruz. İçinde de sleep() metodunu çağırıyoruz. Böylece burada bir iş yapılıyormuş havası veriyoruz.

250 ms çalışan bu metodu şimdi biraz çağırma vakti. Runnable  cinsinden tanımladığımız task ımız (yani threadimiz) 30 kere someWork metodunu çağırarak toplamda 6 saniyelik bir iş olacak.

Şimdi bu işi nerede çağıracağız? En basit yöntem bir buton koymak, ben bir menü seçeneği daha oluşturuyorum. Bu seçenek seçildiğinde işimiz çalışmaya başlayacak. Bunun için option.xml dosyama yeni item ekliyorum.

Şimdi seçenek seçildiğinde yakalamamız lazım. Bunun için ise onOptionsItemSelected() metodunda  düzenlemeye gidiyoruz.

Şimdi artık yaşanan olayları progress bar da görme zamanı. İşimiz başladığında progress bar çalışmaya başlayacak, güncellenecek ve iş bittiğinde kaybolacak.

Activity altında int progress tanılıyoruz. Daha sonra onOptionsItemSelected() altında progress barı görünür yapıyoruz.

Ve someWork() metodu içinde güncelleme işlemi yapıyoruz.

son olarak ta işimiz bittiğinde progress bar ı gizlememiz gerekiyor.

Çalıştırdığımızda elde ettiğimiz görüntü

Activity classımızın son hali ise;

Bugünkü çalışmamızda, programın arka planda çalıştırması gereken uzun soluklu bir iş olduğunda, bu işin ilerlemesini kullanıcıya göstererek, kullanıcıyı bilgilendirmek amaçlanmıştır. Burada yapılan çalışma ikinci bir thread yapısıdır. Bu yüzden arkada iş ilerlerken siz başka bir iş yapabilirsiniz.

Projenin kaynak kodlarını buradan indirebilirsiniz. Rar şifresi: www.kodmerkezi.net

<<< Önceki:

Sonraki: >>>


Facebookta Paylaş

Yorum Bırakın!

Yorum yaz, yada kendi sitende trackback (Geri besleme) olarak ekle. Ayrıca RSS ile bu konuya üye olabilirsin. .

Nazik olun. Temiz tutun. Konu dışına çıkmayın. Spam yaratmayın.

Bu tagları kullanabilirsiniz:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Bloğumuz gavatarı desteklemektedir. Kendi gavatarınızı edinmek için lütfen Gravatar a üye olun.