Uygulamamda bir sayacım var. 1 saatlik falan bir sayaç. 1 saatlik olduğu için arka planda beklemesi olsun uykuda çalışmaması olsun bir sürü problem çıkardı. Çoğunu aştım şimdi uykuda da normalde de sonuna kadar işliyor fakat şöyle büyük bir sorun çıktı:

Sayacı çalıştırdık. telefonu kenarıya koyduk sıkıntı yok. Fakat başka uygulamalar çalıştırılırsa rami dolarsa ben uygulamaya tekrar girdiğimde onCreate kısmına geliyor ve dolayısıyla sayaç sıfırlanıyor. Sadece sayac kısmında değil. Testlerime göre herhangi bir activityi açıp başka uygulamalarla uğraşınca tekrar baktığımda oncreate kısmına gelip activityi yeniden oluşturuyor.

Bunu önleyebilirmiyim acaba ? Bir yolu varmı ? Sadece sayaç olan activitymde yapsam yeterli.

Teşekkürler

soruldu: 24 Nis '13, 05:22

creseos's gravatar image

creseos
2.0k468187
cevap kabul oranı: 37%

değiştirildi: 24 Nis '13, 09:01

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183

sayaç için service kullanmanız daha yerinde olmaz mı? ne service nede o kadar uzun süre arkada çalışması gereken bir activity kullandım ama istediğiniz service'in amacına daha çok uyuyor sanki.

(24 Nis '13, 05:49) baran baran's gravatar image

servisle de bağlamayı denedim. Fakat servisle beraber yapınca bu sefer static veriler silinebiliyor bellekten. Ayrıca 1 adet viewpagerım var. mesela 6 tane sayfası olsa 6sına da sayaç saydırmam gerekiyor. eğer bulunduğundan bir başkasına geçerse sayaç sıfırlanacak. Yani tek bir sayaç da değil. Sadece bulunduğu sayfadaki sayaç işliyor.

Bir de ram dolunca servisi de yeniden başlatmıyor mu?

(24 Nis '13, 06:12) creseos creseos's gravatar image

bence de bir service ve alarmManager kullanmalısın, verileri de uygulama içinde değişkende(ram'de) tutmamalısın, veritabanına yazdır geç ?

(24 Nis '13, 10:59) gturedi gturedi's gravatar image

saniye başı mı veritabanına kaydedeceğim? bir de alarm manageri sistem kapatmaz mı?

(25 Nis '13, 00:26) creseos creseos's gravatar image

sen 1 saatlik sayaç diyince ben de alarManager'i önderdim. Yapacağın işlemi saniyede 1 mi yapman gerekiyor? yok kapatmaz, üstelik batarya kullanımını da iyidir timer atamaktan

(25 Nis '13, 17:15) gturedi gturedi's gravatar image

Yani şöyle düşündüm ben. Siz veritabanına yazdır geç diyince her saniye sayaç durumunu veritabanına kaydet dediğinizi sanmıştım. Sayacın kullanıcıya da gösterilmesi gerekiyor yalnız. Yine de uygun mu alarm manager sizce? Sadece sayaç çalışacak bitince işlem yapacak başka işlem yok.

(26 Nis '13, 00:35) creseos creseos's gravatar image
1

sayacın kullanıcıya gösterilmesinden kastınız nedir, uygulama kapanıkken bile sayaç mı göstereceksiniz kullanıcıya, kafamda hiçbir şey canlanmıyor

(26 Nis '13, 14:58) gturedi gturedi's gravatar image

İlgilendiğiniz için teşekkürler arkadaşlar, sorunu çözdüm.

Şöyle söylüyüm. Mesela mesajlar var. Mesajlarım pager şeklinde sağa sola geçebiliyor. Mesela bir mesajı açtı. 59dk 59sn diye saymaya başlayacak. Aşağı indirse de uygulamayı tekrar baktığında sayacın hala işliyor olması lazım. Arka planda da çalışmaya devam edecek yani.. 60dk bittiğinde mesaj açılacak

(29 Nis '13, 02:51) creseos creseos's gravatar image
8 yorumdan 5 tanesi gösteriliyor hepsini göster

Arkadaşlar sorunumu şu şekilde çözdüm :

Home tuşuna basıldığında onSaveInstanceState ile şimdiki tarihi ve kaldığı sayacı kaydediyorum. Sonra eğer ramdan yokedildiyse ve uygulama tekrar açıldıysa, onRestoreInstanceState() tetikleniyor zaten. Eğer Kayıtlı veriler varsa(yani ramdan silindiyse activity) onRestoreInstanceState eventinde aradaki süreyi hesaplayıp kaldığı yerden devam etmesini sağlıyorum. Süre bittiyse de mesajı gösteriyorum.

Bunun da değişik durumlarda, ilerde herkese lazım olabileceğini düşünüyorum. İyi çalışmalar.

permanent link

cevaplandı: 29 Nis '13, 02:54

creseos's gravatar image

creseos
2.0k468187
cevap kabul oranı: 37%

değiştirildi: 29 Nis '13, 02:58

1

Guzel cozmussun puanini verdim ama yine de dogru yontem degil gibi geliyor. Arka planda calisan bi islem icin servis kullanarak cozmeye calismaliydin. Viewpager kullanirken yanlis bir kullanim yapmis olabilirsin cunku her fragmentin bagimsiz calismasi lazimdi.

(09 Şub '14, 07:25) olkunmustafa olkunmustafa'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:

×817
×7

Soruldu: 24 Nis '13, 05:22

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

Son güncelleme: 09 Şub '14, 07:25

powered by BitNami OSQA