我有一个应用程序,它有一个带有“开始记录”按钮的单个屏幕,它启动一个服务。按下后,按钮变为“停止记录”按钮并停止服务onClick。该服务基本上每分钟抓取一些数据并将其写入几个SQLite表。
应用程序旨在打开,开始记录..然后最小化并留在后台运行。但问题是,经过一段时间后,Android会破坏/停止进程/服务/活动,使其不再记录数据,重新打开应用程序时,屏幕会重置,以便再次显示“开始记录”而不是“停止记录”,因为应用程序已重新启动。
我正在寻找能够在后台运行的应用程序/服务,并根据需要收集数据,并且为了使活动保持打开状态或处于打开状态,我可以停止记录而不是重置屏幕。基本上,应用程序在记录时永远最小化,而不是关闭。
感谢您提供任何帮助或建议。
答案 0 :(得分:1)
你应该实现Foreground。
要请求您的服务在前台运行,请调用startForeground()。此方法有两个参数:唯一标识通知的整数和状态栏的通知。有关详细信息,请转到:
http://developer.android.com/guide/components/services.html#Foreground
答案 1 :(得分:0)
您正在寻找的是一个棘手的startService。这将允许服务运行,直到系统内存不足。有关服务的更多信息,请查看here。
答案 2 :(得分:0)
问题是当操作系统离开RAM时,如果它在后台,它将破坏你的服务。这就是无法停止的服务(如mp3播放)是前台服务的原因。因此,如果您绝对想让它保持活动,您可以让您的服务在前台运行。我知道这可能不是你想要的,但感觉你没有多少选择。将服务放在前台是告诉Android我不应该杀死你的服务的方法。