有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

当应用程序位于后台时,java Android服务停止

我的应用程序启动了一项使用GPS跟踪位置的服务。 跟踪是使用应用程序创建的服务完成的,当应用程序关闭时,该服务可以继续在后台运行。这很好,直到。。。 问题是(我认为)当安卓设备内存负载增加时,我认为服务会被调出并崩溃。 是否有办法强制服务保持加载状态?-我想不会,但如果有,知道会有帮助。 提前谢谢


共 (2) 个答案

  1. # 1 楼答案

    将您的服务标记为前台组件将确保它不会被终止,除非在极端情况下,但您正在损害Android管理其资源的能力

    另一个选项是重写onStartCommand事件处理程序以执行服务执行的代码。此方法由startService调用,也可在运行时重新启动服务时调用(Android可以在再次获得足够资源时自动重新启动服务)。在这里,您还可以指定重启行为

    @Override public int onStartCommand(Intent intent, int flags, int startId)
    {
        startBackgroundTask(intent, startId);  //implement this method, doing processing on a new Thread
        return Service.START_STICKY;
    }
    

    使用START_STICKY意味着在服务终止后重新启动时,将再次调用onstart命令。请注意,对于重新启动,intent参数将为null。如果您再次需要原始意图,请使用START_REDELIVER_INTENT