Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何阻止应用程序/服务销毁?_Java_Android_Service_Android Activity_Ondestroy - Fatal编程技术网

Java 如何阻止应用程序/服务销毁?

Java 如何阻止应用程序/服务销毁?,java,android,service,android-activity,ondestroy,Java,Android,Service,Android Activity,Ondestroy,我有一个应用程序,它有一个带有“开始日志记录”按钮的单屏幕,可以启动服务。按下后,该按钮变为“停止记录”按钮,并在单击时停止服务。该服务实质上每分钟捕获一些数据并将其写入几个SQLite表 应用程序设计为打开,开始记录。。然后最小化并留在后台运行。然而,问题是,一段时间后,Android会破坏/停止进程/服务/活动,使其不再记录数据,当应用程序重新打开时,屏幕会重置,使其再次显示“开始记录”,而不是“停止记录”,因为应用程序已重新启动 我希望应用程序/服务能够在后台运行并收集数据,只要它想要,并

我有一个应用程序,它有一个带有“开始日志记录”按钮的单屏幕,可以启动服务。按下后,该按钮变为“停止记录”按钮,并在单击时停止服务。该服务实质上每分钟捕获一些数据并将其写入几个SQLite表

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

我希望应用程序/服务能够在后台运行并收集数据,只要它想要,并且活动保持打开状态,或者在打开时,我可以停止日志记录,而不是重置屏幕。基本上,当记录日志时,应用程序将永远最小化,而不是关闭


谢谢你的帮助和建议。

你要找的是一个棘手的问题。这将允许服务运行,直到系统内存耗尽。有关服务的更多信息,请查看。

问题是,当操作系统脱离RAM时,如果它在后台,它将破坏您的服务。这就是为什么不能停止的服务(如mp3播放)是前台服务。因此,如果你绝对想让你的服务保持活力,你可以让它在前台运行。我知道这可能不是你想要的,但感觉你没有太多选择。把一个服务放到前台是告诉Android你的服务不能被终止的一种方式。

你应该实现前台

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


在服务中使用startforeground(并从onStart命令返回START\u STICKY)