在android中保持服务在后台运行

在android中保持服务在后台运行,android,service,Android,Service,我正在用android开发一个聊天应用程序。并且需要保持服务运行 即使在退出应用程序之后。 我在 返回开始时间; 在我的服务的onStartCommand()中。 但由于android oreo中服务的限制,退出应用程序几秒钟后服务就会被破坏。 到目前为止,用户丢失了新消息通知。 我不能使用Fcm,因为本地网络和无法访问互联网。 我不能使用前台服务。(由于业主要求不显示任何通知)。 当我在安卓移动设置中检查运行服务时,有一些 应用程序,他们的服务没有杀死像Es文件浏览器,Zapya。。。 他们如

我正在用android开发一个聊天应用程序。并且需要保持服务运行 即使在退出应用程序之后。 我在 返回开始时间; 在我的服务的onStartCommand()中。 但由于android oreo中服务的限制,退出应用程序几秒钟后服务就会被破坏。 到目前为止,用户丢失了新消息通知。 我不能使用Fcm,因为本地网络和无法访问互联网。 我不能使用前台服务。(由于业主要求不显示任何通知)。 当我在安卓移动设置中检查运行服务时,有一些 应用程序,他们的服务没有杀死像Es文件浏览器,Zapya。。。 他们如何在没有前台服务的情况下保持服务运行。 我该怎么办呢。 在blow image中显示,某些应用程序服务正在运行,而没有任何通知。

基于:

该系统区分前台和后台应用程序。一 如果出现以下任何情况,应用程序将被视为处于前台 正确:

  • 它有一个可见的活动,无论该活动是已启动还是已暂停
  • 它有一个前台服务
  • 另一个前台应用程序通过绑定到其服务或使用其内容连接到该应用程序 提供商。
原因
Es FileExplorer
可以做到以下几点(这只是我的观点):

Es FileExplorer(在利用某些循环漏洞时相当厚颜无耻)有多个内容提供商,但只有一个提供商,
FileProveders
,这是如何将
com.android.providers.settings
连接到它的。我想这种联系使它成为前景。他们几乎为所有方案注册了所有可能的
intent过滤器
。您尝试共享或访问的任何内容都可能以某种或其他方式触发它们,从而保持其进程的使用(您只需单击详细信息,您就会找到应用程序运行的
LocalCService

但对于您的应用程序:


如果您不能使用
FCM
ForegroundService
,并且不能向用户显示,那么唯一的选择就是定期执行任务。您可以使用WorkManager。唯一的限制是日程安排的最短持续时间为15分钟。请参阅我的答案,了解WorkManager的用法。

如果主要功能是定期任务,请尝试将其转换为。无定期任务不是问题。我们应该保持与后台服务的连接处于活动状态,以便向用户显示新消息通知。因为调度的持续时间限制为15分钟,用户可能无法实时接收新消息,并且他在该限制下会延迟收到消息。但若服务继续运行,它将是实时的谢谢Sagar,那个么他们的服务继续运行的一些应用程序呢?比如Es File explorer或zapya。但我的应用程序服务显示在运行服务中。但在一段时间后,我退出应用程序服务将被销毁并从运行服务列表中删除。一些应用程序如何在没有任何通知的情况下保持其服务运行。我附上了一张图片,显示一些应用程序服务正在后台运行@Sagar-谢谢@Sagar。我可以执行类似Es文件的操作吗。我该怎么做。你能解释更多吗?谢谢。@user2591041你需要检查如何实现内容提供程序。我自己还没试过。