IntentService是否适用于FileObserver

时间:2016-01-07 19:45:41

标签: android android-intentservice fileobserver

我需要在目录上设置FileObserver。观察期与长时间运行的活动相关联,长时间运行,因为它具有包含大量页面的ViewPager。我没有将FileObserver放在活动中,而是考虑将其放入服务中。现在我想知道我会使用IntentService还是应该推出自己的Service实现?我真正担心的是,在我明确调用stopService(intent)之前,我不希望服务停止。但我知道IntentService会自行停止。那么IntentService如何停止自身会影响我的FileObserver的生命周期呢?非常重要的是,我想开始观察我的活动开始时我的活动被破坏的那一刻。

所以我想一个重要的问题是:是否有必要将我的FileObserver放在一个服务中,因为我打算在onCreate中启动onWatching并在我的Activity的onDestroy中停止观看?

更新

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

1 个答案:

答案 0 :(得分:2)

  

是否有必要将我的FileObserver放在一个服务中,因为我打算在onCreate中启动onWatching并在我的Activity的onDestroy中停止观看?

没有

有人说......

  

我会使用IntentService

吗?

没有

  

或者我应该推出自己的服务实现吗?

  

我真正担心的是,在明确调用stopService(intent)之前,我不希望服务停止。

这就是为什么你不会使用IntentService,因为它会在onHandleIntent()返回时停止。

  

那么IntentService如何停止自身会影响我的FileObserver的生命周期?

这取决于您在FileObserver生命周期中使用IntentService所做的事情。之一:

  • 您要移除FileObserver末尾的onHandleIntent(),在这种情况下,您将无法长时间观察文件

  • 您要移除FileObserver中的onDestroy(),在这种情况下,您将无法长时间观察文件,因为该服务将在{{1}后不久被销毁} return

  • 您根本没有删除onHandleIntent(),这是您应用中的错误

  

非常重要的是,我想开始观察我的活动开始时我的活动被破坏的那一刻。

然后在活动中有FileObserver