hin*_*nch 1 java android android-handler
@Override
public void onUserInteraction() {
Handler handler = new Handler();
handler.postDelayed(new Runnable () {
public void run() {
finish();
}
}, 5000);
handler.removeCallbacks(null);
}
Run Code Online (Sandbox Code Playgroud)
我试图在调用 OnCreate 方法时运行处理程序。然后,当我收到用户交互时,我想取消处理程序并再次调用它(重新启动处理程序)。
我该怎么做?
提前致谢
您可以使用布尔对象,例如:
@Override
public void onUserInteraction() {
isStarted = true;
Handler handler = new Handler();
handler.postDelayed(new Runnable () {
public void run() {
if(isStarted){
finish();
}
}
}, 5000);
Run Code Online (Sandbox Code Playgroud)
}
或者你可以做这样的事情:
Runnable myRunnable = new Runnable() {
@Override
public void run() {
finish();
}
};
public static Handler myHandler = new Handler();
private static final int TIME_TO_WAIT = 5000;
@Override
public void onUserInteraction() {
restart();
}
public void start() {
myHandler.postDelayed(myRunnable, TIME_TO_WAIT);
}
public void stop() {
myHandler.removeCallbacks(myRunnable);
}
public void restart() {
myHandler.removeCallbacks(myRunnable);
myHandler.postDelayed(myRunnable, TIME_TO_WAIT);
}
Run Code Online (Sandbox Code Playgroud)