IntentService 是否适合 FileObserver

Is IntentService appropriate for FileObserver

我需要在目录上设置一个 FileObserver。观察期链接了一个long运行activity,long运行,因为它有一个ViewPager,页面很多。我没有将 FileObserver 放在 activity 中,而是考虑将其放在服务中。现在我想知道我会使用 IntentService 还是应该推出我自己的 Service 实现?我真正担心的是,在我明确调用 stopService(intent) 之前,我不希望服务停止。但我知道 IntentService 会自行停止。那么 IntentService 停止自身将如何影响我的 FileObserver 的生命周期?非常重要的是,我想开始观察我的 activity 开始到我的 activity 被摧毁的那一刻。

所以我想一个重要的问题是:是否有必要将我的 FileObserver 放在服务中,因为我计划在 Activity 的 onCreate 中开始监视并在 onDestroy 中停止监视?

更新

我正在使用 FileObserver 从正在观察的目录中删除文件,将它们放在另一个目录中。实际上,在放入新目录之前,我将大小调整了大约 20 倍。因此,所有需要在 FileObserver 的 onEvent 方法中发生的事情,这就是为什么我认为具有独立线程的服务很重要。而且每次需要观察3个小时左右

Is it necessary at all to place my FileObserver in a Service, since I plan to startWatching in onCreate and stopWatching in onDestroy of my Activity?

没有

话虽这么说...

would I use IntentService

没有

or should I roll out my own implementation of Service?

是的。

My real concern is that I do not want the service to stop until I explicitly call stopService(intent).

这就是您不使用 IntentService 的原因,因为它会在 onHandleIntent() returns 时自行停止。

So how would an IntentService stopping itself affect the life of my FileObserver?

这取决于您对 FileObserver 相对于 IntentService 生命周期所做的事情。或者:

  • 您要删除 onHandleIntent() 末尾的 FileObserver,在这种情况下,您不会长时间观察文件

  • 您正在删除 onDestroy() 中的 FileObserver,在这种情况下,您不会长时间观察文件,因为该服务将在 [= 后不久被销毁11=]returns

  • 您根本没有删除 FileObserver,这是您应用程序中的错误

Very importantly, I want to start observing the moment my activity starts to when my activity is destroyed.

然后activity中有FileObserver