Soru & Cevap

Servis Timer Kullanımı ...

06.05.2014 - 02:52

Merhabalar ben arka planda çalışacak bir servis yazdım. Bu servisin onCreate metodu şu şekilde;

[code]

static long zaman = 10000;

@Override
    public void onCreate(){
        super.onCreate();
        
        zamanlayici =  new Timer();
        yardimci     = new Handler(Looper.getMainLooper());
        
        
        zamanlayici.scheduleAtFixedRate(new TimerTask() {
            
            @Override
            public void run() {
                
                bildirimOlustur();
                
            }
        }, 0, zaman);
    }

[/code]

Burada bildirim oluşturuyorum ve. Bildirime tıklandıktan sonra çağırılacak olan akticyt'de bu zamanı kullanıcıya değiştirme seçenği sunan bir snipperım var. Sinipper içeriisnden bir öğe seçildiğinde zamanın değişmesini istiyorum. Örnek olarak şöyle gösterebilirim.

[code]

        spSureSecim.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
                Servis.zaman = 300000;
            } 

            public void onNothingSelected(AdapterView<?> adapterView) {
                return;
            } 
        });

[/code]

 

Fakat bu işlem olunca bildirimin gelme süresinde bir değişiklik olmuyor. Hala servis içerisinde tanımalanan değer ile geliyor. Tanımladığım zaman ifadesi static olduğu için başka sınıflardan ulaşabilmem gerekiyor. sıkıntı nedir sizce? Yardımcı olabilir misiniz?

31 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user mazlum.agar
mazlum.agar
06.05.2014 - 09:23

Çok sağol hocam yardımcı oldunuz. Teşekkür edeirm.

Anıl SÖZERİ
06.05.2014 - 11:52
Rica ederim işe yaradığına sevindim, iyi çalışmalar :)
picture-3650-1421928561.jpg
anilsozeri
06.05.2014 - 08:49

Merhaba,

İlk olarak başka sınıflardan ulaşmak için private tanımlayıp setter ve getter metotlarınız ile de aynı işlemi yönetebilirsiniz, ikinci olarak da zaman değişkeniniz güncelleniyor gibi görünüyor fakat Timer işlem yapmaya başladığında parametre olarak ilk tanımladığınız değeri aldığı için yeniden durdurup başlatırsanız yeni değere göre çalışacaktır diye düşünüyorum, umarım yardımcı olabilmişimdir.

İyi çalışmalar..