【问题标题】:Set a particular data on Firestore at a specific time using CountDownTimer使用 CountDownTimer 在特定时间在 Firestore 上设置特定数据
【发布时间】:2020-05-16 20:06:09
【问题描述】:

您好,我想在特定时间使用 countDownTimer 在 Firestore 上设置特定数据。当我的倒计时完成时,数据在 firestore 上设置得很好,但每次更新活动时,数据都会一次又一次地重置。 当我的数据设置一次时,是否有可能破坏完成方法?如果您有其他建议欢迎您

    firebaseAuth=FirebaseAuth.getInstance();
    firebaseFirestore=FirebaseFirestore.getInstance();

    long mil=200000;

    downTimer =new CountDownTimer(mil,1000) {
        @Override
        public void onTick(long millisUntilFinished) {

        }

        @Override
        public void onFinish() {

            Map<String,Object> map=new HashMap<>();
            map.put("Password","userPassword");

            firebaseFirestore.collection("UsersName").document().set(map).addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {

                    if (task.isSuccessful()) {

                        Toast.makeText(ForgetPasswordActivity.this, "Done sir", Toast.LENGTH_SHORT).show();
                       downTimer.cancel();
                    }
                }
            }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {

                    e.printStackTrace();
                }
            });

        }
    }.start();

}

}

【问题讨论】:

    标签: java android google-cloud-firestore countdowntimer


    【解决方案1】:

    每次重新启动您的 Activity 时,都会创建一个新的计时器实例,并且只要您的 Activity 还存在,它就会一直存在。

    如果您需要一个能够在活动生命周期中继续存在的计时器,您应该将它放在前台(或后台)服务或类似的东西中。

    因为您使用的是 firebase,所以另一个解决方案是云功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-23
      • 2011-12-29
      • 2019-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多