我基本上想要创建一个计时器。我有一个textview,我需要显示一个计时器,如“在2分29秒内更新你的位置”,我希望计时器减少,例如2分28秒,然后2分27秒。
我想更新它,即使用户没有使用我的应用程序(我不希望它真正意义上更新我的意思是当用户打开我的应用程序后说1分钟,然后计时器应显示1分27秒)
有人可以帮我指出正确有效的方法吗?谢谢:))
答案 0 :(得分:2)
我认为最有效的方法是在您的活动处于前台时使用scheduleAtFixedRate,当它进入后台时您不需要任何服务,您只需将当前时间和剩余时间保存在共享首选项中当你的活动再次到达前景时,读取这些值加上当前时间,然后以适当的方式更新textview
。
答案 1 :(得分:1)
您可以使用 LocalBroadcastManager 来使用服务并发送您的活动接收的意图(使用TextView的意图)。您应该在 Activity.onResume()中注册 BroadcastReceiver ,并在 onPause()中取消注册。
使用 TimerTask 应该是默认方法,但您必须注意,如果您的活动被发送到后台,它可能会被系统杀死。这就是我推荐使用服务的原因。
希望它有所帮助。