'dan küçük bir sohbet uygulaması oluşturmak için Firebase kullanıyorum. Uygulamam arka plandaysa veya çıkılıyorsa, firebase veritabanı konumunu dinlemeye devam etmek için ChildEventListener
'u istiyorum. Şu anda kayıt ediyorum ve finish()
kullanarak benim app çıkarken veya kapatıldığında, o zaman benim ChildEventListener benim yöntemler onChildAdded
veya onChildChanged
gibi çağrılıyor olsa da removeEventListener
aradı rağmen ChildEventListener her zaman arka planda çalışan olmasını istiyorum. Bunu yapmanın bir yolu var mı?Firebase: ChildEventListener uygulamasını dinlemeye devam etse de uygulama
cevap
kullanın servisi sohbet app kalmıştır
public class ChildEventListener extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
//Adding a childevent listener to firebase
Firebase myFirebaseRef = new Firebase("FirebaseURL");
myFirebaseRef.child("FIREBASE_LOCATION").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
//Do something using DataSnapshot say call Notification
}
@Override
public void onCancelled(FirebaseError error) {
Log.e("The read failed: ", error.getMessage());
}
});
}
@Override
public void onCancelled(FirebaseError firebaseError) {
Log.e("The read failed: ", firebaseError.getMessage());
}
});
return START_STICKY;
}
}
<service android:name=".ChildEventListener "/>
Manifest
içine Hizmetin kayıt Hizmetin başlatın ve/hizmetinizi başlatmak için childEvents, dinlemek için ChildEventListener dinlemek için tasarımancak mevcut hizmet örneğimi başlattığımda, ChildEventListener'ı tekrar kaydedecek ve bu da ChildEventListener öğesinin birden çok dinleyicisine neden oluyor. ChildEventListener cihazımın zaten dinlemiş olduğunu kontrol etmek için var mı? –
childEvent dinleyicinizin aktif olup olmadığını kontrol etmek için sharedPreferences kullanın. Dinlemiyorsa, o olay dinleyiciyi sadece –
eklediğimi söylüyorum, bu ChildEventListener'ı nasıl kontrol edeceğimi nasıl ekleyelim? dinlemediğini söyleyecek herhangi bir dinleyici var mı? –
Merhaba, bunun için herhangi bir çözüm buldunuz? –
Hayır, ama 'removeEventListener''ü çağırmayın ve sanırım sizin için çalışmalı! –
Tamam. Yani ChildEventListener her zaman arka plan iş parçacığında çalışacak, hatta uygulama öldürecek YA DA bu şeyleri hizmette yapmamız gerekecek mi? –