Android 在关闭活动后检索对倒计时的引用
我的活动有一个启动计数器的简单菜单项。。。 计数器存储在活动的字段中 问题在于“后退按钮” 关闭活动(后退按钮)后,计时器(如我的意图)继续, 并通过重新显示计时器来重新启动活动,使其正常运行。。。 但是我丢失了对计数器的引用,因此我无法阻止它 有什么想法吗 下面是函数代码的一部分 布尔值onOptionsItemSelected(菜单项项)Android 在关闭活动后检索对倒计时的引用,android,timer,Android,Timer,我的活动有一个启动计数器的简单菜单项。。。 计数器存储在活动的字段中 问题在于“后退按钮” 关闭活动(后退按钮)后,计时器(如我的意图)继续, 并通过重新显示计时器来重新启动活动,使其正常运行。。。 但是我丢失了对计数器的引用,因此我无法阻止它 有什么想法吗 下面是函数代码的一部分 布尔值onOptionsItemSelected(菜单项项) }我建议改用AlarmManager。 或者您可以使用SharedReferences来存储在onResume(..)中读取的中间值,以重新启动计时器并保
}我建议改用
AlarmManager
。或者您可以使用
SharedReferences
来存储在onResume(..)
中读取的中间值,以重新启动计时器并保存在解决方案中的onPause(..)
中(如果我理解),我应该停止计数器,在首选项中保存到达的时间,然后在resume中,利用该时间并启动另一个计数器。但这不是我想要的行为。我希望计数器继续倒计时(它做到了),然后能够停止它(即,找到对它的引用),如果这有帮助,我会去找AlarmManager。。。thanks@user290302保存到达时间+当前时间戳,然后在启动新计时器之前从到达时间中减去自上次停止以来经过的时间。是,但如果计时器同时超时(在未显示活动的阶段),则采用这种方式我没有通知您是对的:在代码中它没有显示,但打算在超时时将通知放入通知栏…:-在这种情况下,您只需要AlarmManager。您能给我一个好的链接,了解如何使用AlarmManager显示倒计时吗-D
switch (item.getItemId()) {
case R.id.STARTSTOP:
running = !running;
if (!running) {
item.setTitle("START");
if (counter!=null) {
counter.cancel();
counter = null;
}
}
else {
item.setTitle("STOP");
counter = new CountDownTimer(1000*60*20/*20min*/,1000){
@Override
public void onFinish() {
TextView tv = (TextView) findViewById(R.id.counter);
tv.setText("done!");
}
@Override
public void onTick(long millisUntilFinished) {
TextView tv = (TextView) findViewById(R.id.counter);
tv.setText(millisUntilFinished);
Log.d("XXXDEBUGXXX",millisUntilFinished);
}
};
counter.start();
}