Thread.sleep 不会在 Android 中暂停应用程序
Thread.sleep does not pause the app in Android
我想在将某些内容插入 Firebase 数据库后暂停我的 android 应用程序 1 秒钟。为此,我使用以下代码 insider a listener:
firebase_DB.child(id).setValue(currentOrder).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
orderSuccesfullyWritten[0] =true;
orderCouldNotBeSendAfterMutipleAttemps[0] = false;
Log.e("dbTAG", "Data successfully written.");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
} else {
Log.e("dbTAG", task.getException().getMessage());
}
}
});
代码正在执行(我收到“数据已成功写入”的消息,但 Threas.sleep(1000)
没有任何效果。应用程序直接继续执行下一步操作。知道这是为什么是吗?我会感谢每一条评论。
一旦 firebase 查询已经完成,您将 thread.sleep。
只需将 Thread.sleep 移动到您的 firebase 查询之后
firebase_DB.child(id).setValue(currentOrder).addOnCompleteListener(do something);
Thread.sleep(1000);
Firebase 查询异步运行,这意味着它 运行 在后台线程上运行。
因此,使用这段代码,主线程将在执行 firebase 查询时休眠一秒钟
我想在将某些内容插入 Firebase 数据库后暂停我的 android 应用程序 1 秒钟。为此,我使用以下代码 insider a listener:
firebase_DB.child(id).setValue(currentOrder).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
orderSuccesfullyWritten[0] =true;
orderCouldNotBeSendAfterMutipleAttemps[0] = false;
Log.e("dbTAG", "Data successfully written.");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
} else {
Log.e("dbTAG", task.getException().getMessage());
}
}
});
代码正在执行(我收到“数据已成功写入”的消息,但 Threas.sleep(1000)
没有任何效果。应用程序直接继续执行下一步操作。知道这是为什么是吗?我会感谢每一条评论。
一旦 firebase 查询已经完成,您将 thread.sleep。
只需将 Thread.sleep 移动到您的 firebase 查询之后
firebase_DB.child(id).setValue(currentOrder).addOnCompleteListener(do something);
Thread.sleep(1000);
Firebase 查询异步运行,这意味着它 运行 在后台线程上运行。 因此,使用这段代码,主线程将在执行 firebase 查询时休眠一秒钟