Android 我在项目中有一个活动,但当活动开始时,我在firebase中有一个节点,它应该是在线的,但它不工作?

Android 我在项目中有一个活动,但当活动开始时,我在firebase中有一个节点,它应该是在线的,但它不工作?,android,firebase-realtime-database,Android,Firebase Realtime Database,如果我最小化我的应用程序并运行该活动,它会工作,但当我从另一个活动开始执行该活动时,它不会工作 在我的onCreate中,如下所示 auth = FirebaseAuth.getInstance(); currentUser = auth.getCurrentUser(); db = FirebaseDatabase.getInstance(); userRef = db.getReference().child("Users").child(a

如果我最小化我的应用程序并运行该活动,它会工作,但当我从另一个活动开始执行该活动时,它不会工作

在我的onCreate中,如下所示

auth = FirebaseAuth.getInstance();
        currentUser = auth.getCurrentUser();

        db = FirebaseDatabase.getInstance();
        userRef = db.getReference().child("Users").child(auth.getCurrentUser().getUid());

        if(currentUser == null) {
            sendToStart();
        } else {
            userRef.child("online").setValue("true");
        }
我的onStart方法中也有同样的东西,但不起作用。

您能帮助我吗?

您应该尝试在后台服务中执行此语句来更新其节点

public class MyService extends Service {

  @Override
  public int onStartCommand(Intent intent, int flags, int startId) {
      //TODO do something useful

    auth = FirebaseAuth.getInstance();
    currentUser = auth.getCurrentUser();

    db = FirebaseDatabase.getInstance();
    userRef = db.getReference().child("Users").child(auth.getCurrentUser().getUid());

    if(currentUser == null) {
        sendToStart();
    } else {
        userRef.child("online").setValue("true");
    }


      return Service.START_NOT_STICKY;
  }

  @Override
  public IBinder onBind(Intent intent) {
    //TODO for communication return IBinder implementation
    return null;
  }
}


Intent i= new Intent(context, MyService.class);
context.startService(i);

我该怎么做检查我添加的答案。