0

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

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

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

感谢您的任何帮助或建议。

4

3 回答 3

1

你应该实现前台。

要请求您的服务在前台运行,请调用 startForeground()。该方法有两个参数:唯一标识通知的整数和状态栏的通知。欲了解更多信息,请访问:

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

于 2013-02-04T16:27:34.260 回答
0

您正在寻找的是粘性startService。这将允许服务运行,直到系统内存不足。有关服务的更多信息,请查看此处

于 2013-02-04T16:25:18.363 回答
0

问题是当操作系统耗尽内存时,如果它在后台,它会破坏你的服务。这就是为什么不能停止的服务(如播放mp3)是前台服务。因此,如果您绝对想让服务保持活力,您可以让服务在前台运行。我知道这可能不是你想要的,但感觉你别无选择。我认为,将服务置于前台是告诉 Android 不能杀死您的服务的方法。

于 2013-02-04T16:25:27.820 回答