【问题标题】:FileObserver listening on background, Android OFileObserver 在后台监听,Android O
【发布时间】:2017-11-16 12:50:25
【问题描述】:

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

在 Android O 中,我们应该使用 FirebaseJob Dispatcher 在后台做一些工作,但我们如何将它应用于FileObserver?有什么方法可以在后台分析数据吗?或者也许从现在开始就无法使用FileObserver

【问题讨论】:

    标签: android fileobserver android-8.0-oreo firebase-job-dispatcher


    【解决方案1】:

    但我们如何将它应用于 FileObserver?

    你不能。

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

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

    或者可能是从现在开始就无法使用 File Observer 了?

    使用 FileObserver 从来都不是可靠的,因为 Android 可以随时终止任何进程,由用户选择(例如,设置中的“强制停止”)或释放系统 RAM。使用粘性前台服务可以让您拥有一个永久的服务/进程,即使它不会永远持续下去。

    Android 8.0 没有改变这一切。

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

    【讨论】:

    • 感谢您的回答。好吧,我需要支持 API lvl 19 的其他事情...... JobInfo.Builder 是不可能的,并且 addTriggerContentUri() 仅在 API 24 中添加。
    • @A.Shevchuk:“好吧,我需要支持 API lvl 19 的其他事情”——也许在 API 级别 24+ 上使用 JobScheduler,并在旧设备。
    • 好吧,似乎在这之后痛苦即将来临......很难支持两种不同的机制以共同的方式处理相同的事情......我最好将'FileObserver'替换为更好的东西,但似乎我现在别无选择。我会试试你的建议,谢谢!
    猜你喜欢
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 2016-09-22
    • 2017-07-26
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    相关资源
    最近更新 更多