我正在创建一个具有UIThread和后台线程的应用。后台线程基本上被用作计时器 - 它每秒向UIThread发送一条消息来更新UI。当用户通过点击后退按钮退出应用程序时,线程继续运行。我希望这种情况发生,因为用户可能希望在计时器继续倒计时打开另一个应用程序。
我的问题是用户何时回到我的应用程序。我想连接到正在运行的后台线程,以显示应用程序的当前状态 - 剩余多少时间等。我的问题是如何挂钩到仍在后台运行的线程。我尝试过使用Thread和AsyncTask,但同样的问题也出现了。
感谢您提供的任何帮助。
答案 0 :(得分:1)
你的线程仍然只是偶然的机会 - 你的应用程序实际上仍在运行但是当Android决定它需要资源时它将被关闭。
但是,您想要做的是在Android中提供的 - 您需要实现一个服务,以使进程在后台与您的应用程序分开运行。无论应用程序是否已启动,您甚至可以在启动时启动服务并运行。
此http://developer.android.com/reference/android/app/Service.html包含您需要知道的大部分内容。要在服务和前台活动之间进行通信,您需要绑定到服务接口,幸运的是,这很容易完成。
答案 1 :(得分:0)
首先想到的是将计时器线程更改为服务,并让对它感兴趣的应用程序绑定到该服务。基于Android文档和建议的应用程序设计,您无法在必要时依赖该线程 被操作系统杀死。
http://developer.android.com/guide/topics/fundamentals/services.html
答案 2 :(得分:0)
android系统每分钟都会提供一个广播事件,它叫做TIME_TICK。
你应该:
您还应确保手机可以在此时间范围内睡眠。因此,您可能希望将状态计算为起点和现在之间的增量,而不是始终更新状态。