我有一个应用程序,用户被要求登录后会看到一个活动页面。在登录时还会启动一个服务,该服务使用位置管理器跟踪用户的当前位置。一切都很完美,直到应用程序处于待机模式(屏幕关闭并且应用程序在后台超过约1小时)。
我该如何防止这种情况发生?
据我了解,如果我运行一个前台服务,操作系统不应该杀死应用程序...那么我做错了什么吗? 我正在测试的操作系统是Oreo。
在登录时启动服务:
我在activity和service的destroy函数中添加了日志记录,以便检测其何时被销毁,但是当出现这种情况时,日志从未被写入(当然,在销毁应用程序时会进入正常情况)。
我该如何防止这种情况发生?
据我了解,如果我运行一个前台服务,操作系统不应该杀死应用程序...那么我做错了什么吗? 我正在测试的操作系统是Oreo。
在登录时启动服务:
startService(intent);
这项服务:
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
return START_STICKY;
}
@Override
public void onCreate() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
Notification notification = updateNotificationContent(); // the service notification
if (notification == null)
stopSelf();
startForeground(id, notification);
}
我在activity和service的destroy函数中添加了日志记录,以便检测其何时被销毁,但是当出现这种情况时,日志从未被写入(当然,在销毁应用程序时会进入正常情况)。
startForegroundService
适用于 API 26 及以上版本,更多信息请查看此处,https://developer.android.com/reference/android/content/Context#startForegroundService(android.content.Intent)。 - Jeel Vankhede