我一直在研究需要在Firebase Datachange侦听器上触发已定义服务的应用程序。 我尝试使用IntentService,但没有实现。 我想在Firebase数据库中发生更改时启动后台服务。 希望你能帮助我。
清单:
<service
android:name=".modules.call.notifications.CallNotificationService"
android:exported="false">
</service>
服务:
class CallNotificationService : IntentService(CallNotificationService::class.simpleName){
private var pActivity = MainBaseActivity()
override fun onHandleIntent(intent: Intent?) {
VFirebaseQueryManager.getUserReference(pActivity?.profile?.user_id?.toLong()!!)?.addValueEventListener(object : ValueEventListener{
override fun onCancelled(p0: DatabaseError) {
print("a")
}
override fun onDataChange(dataSnapshot: DataSnapshot) {
val notifications = dataSnapshot.getValue(Profile::class.java)
if(notifications!=null){
if(notifications?.action?.equals("inCall")!!){
intent?.putExtra(ApplicationConstants.INCOMING_CALL_DATA,notifications)
intent?.setClass(this@CallNotificationService, CallActivity::class.java)
applicationContext.startActivity(intent)
}
}
}
})
}
}