倒数计时器停止在后台运行
Posted
技术标签:
【中文标题】倒数计时器停止在后台运行【英文标题】:Countdown timer stops running in background 【发布时间】:2013-01-25 16:02:33 【问题描述】:我在我的应用程序中实现了倒数计时器。它在后台运行得很好而且花花公子,但是当我使用高级任务杀手时,它会停止计时器并且重新启动它的唯一方法是再次打开应用程序。即使我使用高级任务杀手之类的东西,是否仍然可以让计时器持续存在?
代码:
TextView tv;
final MyCounter timer = new MyCounter(10000,1000);
tv = (TextView)findViewById(R.id.healthtext);
tv.setText("10");
timer.start();
public class MyCounter extends CountDownTimer
public MyCounter(long millisInFuture, long countDownInterval)
super(millisInFuture, countDownInterval);
@Override
public void onFinish()
Toast.makeText(getApplicationContext(), "death", Toast.LENGTH_LONG).show();
@Override
public void onTick(long millisUntilFinished)
tv.setText((millisUntilFinished/1000)+"");
【问题讨论】:
【参考方案1】:据我所知 - 不,因为任务杀手会破坏您应用的进程,导致所有正在运行的线程退出
【讨论】:
此外,假设它确实通过所说的“任务杀手”持续存在,它会在下一个滴答声中崩溃,因为它引用了在 Activity 被强制关闭时被破坏的 UI 元素。 这很有意义。我只是好奇而已。谢谢您的意见。也许在某个地方,有人会遇到这个,它会回答他们的问题。【参考方案2】:当计时器是您的应用程序的一部分时不会。您当然可以制作一个不属于应用程序的计时器。
【讨论】:
嗯。我从来没有想到这一点。你能扩展一下吗? 这取决于你想要什么。例如,您可以创建一个计时器服务,您的应用程序可以在其中注册一个计时器事件,并且当事件发生时,该服务将进行回调——可能通过广播或发送意图。如果它没有运行,你甚至可以让它重新启动你的应用程序。 有趣。我会弄乱它,看看会发生什么。我从来没有考虑过这个。以上是关于倒数计时器停止在后台运行的主要内容,如果未能解决你的问题,请参考以下文章