0

我正在创建一个必须连续运行的应用程序,直到用户单击停止按钮。该服务所做的是,如果通过使用 GPS 获取当前的纬度和经度并上传到服务器。但是当我让应用程序长时间运行时,服务会停止上传数据。谁能告诉我如何保持服务持续运行,直到用户按下停止按钮?请给我一个解决这个问题的方法。

谢谢。

4

2 回答 2

0

我有同样的要求,这是我正在使用的解决方案,

类:AlarmManager&TimerTask

逻辑,

  1. 创建一个 TimerTask 类,它会定期在服务器上上传您的 GPS 坐标。
  2. 创建一个以特定间隔(在我的例子中为 30 分钟)停止和启动 GPS 和 TimerTask 的 AlarmManager 类。

这就像魅力一样。

于 2012-07-21T10:09:45.400 回答
0

您有兴趣使您的服务具有粘性。

当 Android 内存不足时,它将停止您的服务,以便它可以继续工作。如果您为您的服务设置了粘性标志,那么一旦有足够的资源可用,就会重新创建该服务。

您可以像这样使服务具有粘性:

public class YourService extends Service {

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // We want this service to continue running until it is explicitly
        // stopped, so return sticky.
        return START_STICKY;
    }
...
}
于 2012-07-21T10:01:16.673 回答