0

我想开始一项活动并将开始时间存储在一个变量中,假设会话变量并每秒检查一次,持续时间为 30 分钟。30 分钟过后,活动将关闭。

4

4 回答 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 回答