Android Programlama – Progress Bar, Thread
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;
- Eclipse Üzerine Android Sdk Kurulumu (Resimli ve Detaylı Windows – Linux – Mac İçin Anlatım)
- Android Programlama – Basit Form Uygulaması
- Android Programlama – TableLayout-Radio Button
- Android Programlama – ListView-Spinner-AutoCompleteTextView-Adapter
- Android Programlama – Özelleştirilmiş ListView
- Android Programlama – TabView, TabHost, TabWidget, FrameLayout – DatePicker
- Android Programlama – Menu, Toast, AlertDialog
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.netBunlara da Göz Atmak İsteyebilirsiniz.
<<< Önceki: Android Programlama – Menu, Toast, AlertDialog
Sonraki: Hosting Çözümleri >>>
Yorum Bırakın!