我有自己的服务,在firebase数据库中查找数据更改(通过child events)。
此服务在应用启动时启动:
Intent i= new Intent(this, DatabaseChangeHandler.class);
this.startService(i);
DatabaseChangeHandler.class
是onChild...
听众:
@Override
protected void onHandleIntent(Intent workIntent) {
mDatabase = FirebaseDatabase.getInstance().getReference();
DatabaseReference mDataset1 = mDatabase.child("dataset1");
mDataset1.addChildEventListener(dataset1Listener);
DatabaseReference mDataset2 = mDatabase.child("dataset2");
mDataset2.addChildEventListener(dataset2Listener);
}
(它们实际上并未命名为dataset1
和dataset2
)
但是因为我需要在startactivity之后的活动中的数据,我需要像
这样的东西if(dataIsRefreshed) {
goToMainActivity();
} else {
wait for dataIsRefreshed()
}
我知道,我应该将goToMainActivity()
放在onChildAdded
或onChildChanged
等内部,但是因为我在服务中运行,我不确定,我是怎么做的可以获得听众的状态。