我想开始一项活动并将开始时间存储在一个变量中,假设会话变量并每秒检查一次,持续时间为 30 分钟。30 分钟过后,活动将关闭。
问问题
232 次
4 回答
1
您可以使用CountDownTimer
new CountDownTimer(30000, 1000) { //time in miliseconds
public void onTick(long millisUntilFinished) {
view.setText("seconds remaining: " + millisUntilFinished / 1000);
}
public void onFinish() {
mTextField.setText("here close your activity");
}
}.start();
倾析中没有提到它,但如果它在后台,您可能需要考虑如何处理该任务。
于 2019-04-01T10:29:51.413 回答
1
您可以为此创建处理程序,如下所示:
handler = new Handler();
runnable = new Runnable() {
@Override
public void run() {
finish();
}
};
int MINUTES = 30;
handler.postDelayed(runnable, 1000 * 60 * MINUTES);
如果要删除 Runnable 的回调。
@Override
protected void onDestroy() {
super.onDestroy();
if (handler != null) {
handler.removeCallbacks(runnable);
}
}
希望对你有帮助。。
于 2019-04-01T10:37:50.200 回答
0
您可以使用以下内容:
int finishTime = 30000;
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
YourActivity.this.finish();
}
}, finishTime * 1000);
于 2019-04-01T10:35:31.163 回答
0
使用以下代码:
function hideActivity(){
new Handler().postDelayed(new Runnable(){
public void run(){
this.finish();
}
}, TIME_TAKEN_TO_BE_HIDDEN);
}
于 2019-04-01T11:03:20.337 回答