我在我的应用程序中使用了FileObserver
,现在它在后台运行,如果有新文件注册,则会在前台服务中实例化将其上传到某个服务器的上传操作。
在Android O中,我们应该使用FirebaseJob Dispatcher在后台执行一些作业,但是我们如何将其应用于FileObserver
?是否有任何方法在后台分析数据?或者现在使用FileObserver
是否失败了?
我在我的应用程序中使用了FileObserver
,现在它在后台运行,如果有新文件注册,则会在前台服务中实例化将其上传到某个服务器的上传操作。
在Android O中,我们应该使用FirebaseJob Dispatcher在后台执行一些作业,但是我们如何将其应用于FileObserver
?是否有任何方法在后台分析数据?或者现在使用FileObserver
是否失败了?
但是我们如何将其应用于FileObserver?
你不能。
有没有办法在后台分析数据?
Android 8.0(O)并没有改变这一点。创建一个粘性的前台服务,然后接受不可靠性,因为您的进程仍然不会永久运行。此外,要接受用户抱怨,即您的应用程序一直在运行。
或者现在使用File Observer失败了吗?
使用FileObserver
从来就不可靠,因为Android可以随时终止任何进程,无论是由用户选择(例如在设置中的“强制停止”)还是为了释放系统RAM。使用一个粘性的前台服务是您能够获得永久服务/进程的最接近的方式,即使它也不会永远持续。
Android 8.0没有改变这个问题。
根据您的用例,您可以尝试切换到JobScheduler
并使用它来通过通过addTriggerContentUri()
监视MediaStore
Uri
。
JobScheduler
,并在旧设备上使用不可靠的FileObserver
方法。 - CommonsWare