我需要在目录上设置FileObserver。观察期与长时间运行的活动相关联,长时间运行,因为它具有包含大量页面的ViewPager。我没有将FileObserver放在活动中,而是考虑将其放入服务中。现在我想知道我会使用IntentService还是应该推出自己的Service实现?我真正担心的是,在我明确调用stopService(intent)之前,我不希望服务停止。但我知道IntentService会自行停止。那么IntentService如何停止自身会影响我的FileObserver的生命周期呢?非常重要的是,我想开始观察我的活动开始时我的活动被破坏的那一刻。
所以我想一个重要的问题是:是否有必要将我的FileObserver放在一个服务中,因为我打算在onCreate中启动onWatching并在我的Activity的onDestroy中停止观看?
更新
我正在使用FileObserver从被观察的目录中删除文件以将它们放在另一个目录中。实际上在放入新目录之前,我调整了大约20倍。所以所有这些都需要在FileObserver的onEvent
方法中使用,这就是为什么我认为具有独立线程的服务很重要。我需要一次观察大约3个小时。
答案 0 :(得分:2)
是否有必要将我的FileObserver放在一个服务中,因为我打算在onCreate中启动onWatching并在我的Activity的onDestroy中停止观看?
没有
有人说......
我会使用IntentService
吗?
没有
或者我应该推出自己的服务实现吗?
是
我真正担心的是,在明确调用stopService(intent)之前,我不希望服务停止。
这就是为什么你不会使用IntentService
,因为它会在onHandleIntent()
返回时停止。
那么IntentService如何停止自身会影响我的FileObserver的生命周期?
这取决于您在FileObserver
生命周期中使用IntentService
所做的事情。之一:
您要移除FileObserver
末尾的onHandleIntent()
,在这种情况下,您将无法长时间观察文件
您要移除FileObserver
中的onDestroy()
,在这种情况下,您将无法长时间观察文件,因为该服务将在{{1}后不久被销毁} return
您根本没有删除onHandleIntent()
,这是您应用中的错误
非常重要的是,我想开始观察我的活动开始时我的活动被破坏的那一刻。
然后在活动中有FileObserver
。