作者:王乐668_802 | 来源:互联网 | 2023-05-18 20:40
SobasicallyIambuildinganappthatwilldisplayeventsonascreenandupdateitassoonasasp
So basically I am building an app that will display events on a screen and update it as soon as a specific time which has been set has been reached. It would be easier to use a timer instead of Cloud Functions to achieve this but when I tried, it just didn't work. Looked at other questions on StackOverFlow but all weren't clear. What am I doing wrong? Below is my code.
所以基本上我正在构建一个应用程序,它将在屏幕上显示事件,并在达到已设置的特定时间后立即更新。使用计时器而不是云函数来实现这一点会更容易,但是当我尝试时,它只是不起作用。看看StackOverFlow上的其他问题,但都不清楚。我究竟做错了什么?以下是我的代码。
update_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int time = 0;
String info = information.getEditText().getText().toString();
final long timeCountInMilliSecOnds= time * 60 * 1000;
time = Integer.parseInt(xxx.getEditText().getText().toString().trim());
if (!TextUtils.isEmpty(info) && !TextUtils.isEmpty(String.valueOf(time))) {
progressBar.setVisibility(View.VISIBLE);
update_ref = FirebaseDatabase.getInstance().getReference().child("Event Halls").child("Ankobra One").child("Event Schedule");
final int finalTime = time;
update_ref.setValue(info).addOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task) {
final DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Event Halls").child("Ankobra One").child("Event Schedule");
ref.addListenerForSingleValueEvent(new ValueEventListener() {
void onDataChanged(@NonNull DataSnapshot snapshot) {
new android.os.Handler().postDelayed(
new Runnable() {
public void run() {
retrieve_ref.setValue("No event scheduled");
}
},
timeCountInMilliSeconds);
}
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
Toast.makeText(AnkobraOneActivity.this, "Event Changed and scheduled for " + finalTime + " hours", Toast.LENGTH_LONG).show();
progressBar.setVisibility(View.INVISIBLE);
myDialog.dismiss();
}
});
} else
{
Toast.makeText(AnkobraOneActivity.this, "Insert all details accordingly", Toast.LENGTH_SHORT).show();
}
}
});
I used this answer to achieve what I have done so far but it didn't work.
我用这个答案来实现我到目前为止所做的工作,但它没有用。
https://stackoverflow.com/questions/4817933/what-is-the-equivalent-to-a-Javascript-setinterval-settimeout-in-android-java
Help?
1 个解决方案