Android 在任一手势上或 5 秒后更新 UI
Android update UI on either gesture or after 5 seconds
我是 Android 的新手。我想在收到手势时或 5 秒后更新 UI (GestureOverlayView)。
我正在使用-
public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
updateMyScreen();
}
这对更新屏幕非常有效,但我希望另一个线程保持时间(并且在 5000 毫秒之后)将在用户不输入手势时触发此更新。
我需要使用处理程序吗?我不知道如何处理这个问题。谢谢
您可以通过多种方式添加 5000 毫秒计时器,但其中之一是创建一个 Handler 和 post 一个 Runnable 将其作为延迟事件,如以下代码所示:
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
if(!updated) {
updateMyScreen();
}
}
}, 5000);
然后你可以定义一个布尔值 updated 来保持屏幕是否已经更新的状态
boolean updated;
然后在onGesturePerformed中添加类似的检查
public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
if(!updated) {
updateMyScreen();
}
}
最后在 updateMyScreen 方法中设置更新为 true;
void updateMyScreen() {
//..
updated = true;
}
您不必使用处理程序,您可以使用任何视图 post Runnable
。
我会给你一个想法,但你必须添加条件是否在 5 秒后更新屏幕等:
public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
updateMyScreen();
overlay.postDelayed(new Runnable() {
@Override
public void run() {
updateMyScreen();
}
}, 5000);
}
在这个小例子中,您更新了两次屏幕 - 一次是在执行手势时,另一次是在 5 秒后。其他逻辑由你决定:)
试试这个:
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
/*add your code here which code refresh every 5 seconds*/
}
}, 5000);
我是 Android 的新手。我想在收到手势时或 5 秒后更新 UI (GestureOverlayView)。 我正在使用-
public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
updateMyScreen();
}
这对更新屏幕非常有效,但我希望另一个线程保持时间(并且在 5000 毫秒之后)将在用户不输入手势时触发此更新。 我需要使用处理程序吗?我不知道如何处理这个问题。谢谢
您可以通过多种方式添加 5000 毫秒计时器,但其中之一是创建一个 Handler 和 post 一个 Runnable 将其作为延迟事件,如以下代码所示:
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
if(!updated) {
updateMyScreen();
}
}
}, 5000);
然后你可以定义一个布尔值 updated 来保持屏幕是否已经更新的状态
boolean updated;
然后在onGesturePerformed中添加类似的检查
public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
if(!updated) {
updateMyScreen();
}
}
最后在 updateMyScreen 方法中设置更新为 true;
void updateMyScreen() {
//..
updated = true;
}
您不必使用处理程序,您可以使用任何视图 post Runnable
。
我会给你一个想法,但你必须添加条件是否在 5 秒后更新屏幕等:
public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
updateMyScreen();
overlay.postDelayed(new Runnable() {
@Override
public void run() {
updateMyScreen();
}
}, 5000);
}
在这个小例子中,您更新了两次屏幕 - 一次是在执行手势时,另一次是在 5 秒后。其他逻辑由你决定:)
试试这个:
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
/*add your code here which code refresh every 5 seconds*/
}
}, 5000);