如何阻止应用程序/服务被破坏?

时间:2013-02-04 16:19:25

标签: java android service android-activity ondestroy

我有一个应用程序,它有一个带有“开始记录”按钮的单个屏幕,它启动一个服务。按下后,按钮变为“停止记录”按钮并停止服务onClick。该服务基本上每分钟抓取一些数据并将其写入几个SQLite表。

应用程序旨在打开,开始记录..然后最小化并留在后台运行。但问题是,经过一段时间后,Android会破坏/停止进程/服务/活动,使其不再记录数据,重新打开应用程序时,屏幕会重置,以便再次显示“开始记录”而不是“停止记录”,因为应用程序已重新启动。

我正在寻找能够在后台运行的应用程序/服务,并根据需要收集数据,并且为了使活动保持打开状态或处于打开状态,我可以停止记录而不是重置屏幕。基本上,应用程序在记录时永远最小化,而不是关闭。

感谢您提供任何帮助或建议。

3 个答案:

答案 0 :(得分:1)

你应该实现Foreground。

要请求您的服务在前台运行,请调用startForeground()。此方法有两个参数:唯一标识通知的整数和状态栏的通知。有关详细信息,请转到:

http://developer.android.com/guide/components/services.html#Foreground

答案 1 :(得分:0)

您正在寻找的是一个棘手的startService。这将允许服务运行,直到系统内存不足。有关服务的更多信息,请查看here

答案 2 :(得分:0)

问题是当操作系统离开RAM时,如果它在后台,它将破坏你的服务。这就是无法停止的服务(如mp3播放)是前台服务的原因。因此,如果您绝对想让它保持活动,您可以让您的服务在前台运行。我知道这可能不是你想要的,但感觉你没有多少选择。将服务放在前台是告诉Android我不应该杀死你的服务的方法。