我想开始一项活动,并将开始时间存储在一个变量中,假设是会话变量,并每秒检查30分钟。经过30分钟后,活动将关闭。
答案 0 :(得分: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();
该声明中未提及,但是如果它在后台运行,您可能需要考虑如何处理它。
答案 1 :(得分:1)
您可以为此创建Handler:
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);
}
}
希望对您有帮助。
答案 2 :(得分:0)
您可以使用以下内容:
int finishTime = 30000;
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
YourActivity.this.finish();
}
}, finishTime * 1000);
答案 3 :(得分:0)
使用以下代码:
function hideActivity(){
new Handler().postDelayed(new Runnable(){
public void run(){
this.finish();
}
}, TIME_TAKEN_TO_BE_HIDDEN);
}