在后台监听文件变化的FileObserver,Android O

3

我在我的应用程序中使用了FileObserver,现在它在后台运行,如果有新文件注册,则会在前台服务中实例化将其上传到某个服务器的上传操作。

在Android O中,我们应该使用FirebaseJob Dispatcher在后台执行一些作业,但是我们如何将其应用于FileObserver?是否有任何方法在后台分析数据?或者现在使用FileObserver是否失败了?

1个回答

3

但是我们如何将其应用于FileObserver?

你不能。

有没有办法在后台分析数据?

Android 8.0(O)并没有改变这一点。创建一个粘性的前台服务,然后接受不可靠性,因为您的进程仍然不会永久运行。此外,要接受用户抱怨,即您的应用程序一直在运行。

或者现在使用File Observer失败了吗?

使用FileObserver从来就不可靠,因为Android可以随时终止任何进程,无论是由用户选择(例如在设置中的“强制停止”)还是为了释放系统RAM。使用一个粘性的前台服务是您能够获得永久服务/进程的最接近的方式,即使它也不会永远持续。

Android 8.0没有改变这个问题。

根据您的用例,您可以尝试切换到JobScheduler并使用它来通过通过addTriggerContentUri()监视MediaStore Uri


谢谢你的回答。还有一件事,我需要支持API lvl 19...但是使用JobInfo.Builder是不可能的,而addTriggerContentUri()只在API 24中添加。 - A. Shevchuk
@A.Shevchuk:“好的,我需要支持API级别19”--也许可以在API Level 24+上使用JobScheduler,并在旧设备上使用不可靠的FileObserver方法。 - CommonsWare
嗯,看起来痛苦即将到来...在普遍的方式下处理相同的事情需要支持两种不同的机制是很困难的... 我最好用更好的东西替换'FileObserver',但现在似乎没有选择。我会尝试你的建议,谢谢! - A. Shevchuk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接