Android FileObserver作为连续服务

Android FileObserver作为连续服务,android,service,fileobserver,Android,Service,Fileobserver,我想实现一个FileObserver,每当某个文件发生更改时,就编写日志。在开机和关机之间的任何时间,都应运行此功能。启动后,任何活动都不必再次访问它 我编写了一个服务来保存我的FileObserver的实例。但是onEvent()只触发一次,并且我的服务根本不出现在adb shell服务列表中 这是实现持续后台服务的错误方法吗 public class MyService extends Service { private static FileObserver fileObserver;

我想实现一个FileObserver,每当某个文件发生更改时,就编写日志。在开机和关机之间的任何时间,都应运行此功能。启动后,任何活动都不必再次访问它

我编写了一个
服务
来保存我的
FileObserver的实例
。但是onEvent()只触发一次,并且我的服务根本不出现在
adb shell服务列表中

这是实现持续后台服务的错误方法吗

public class MyService extends Service {

private static FileObserver fileObserver;

@Override
public void onCreate() {

File file = new File("path/to/file");

    if (file.canRead()) {

        fileObserver = new FileObserver(file.getAbsolutePath(), FileObserver.MODIFY) {
            @Override
            public void onEvent(int event, @Nullable String path) {
                Log.i("FileObserver", "File modified!");
            }
        };

        fileObserver.startWatching();

    } 
}

我认为您需要一个前台服务,即使您的应用程序不在前台,它也会继续运行。请参见以下示例:

您也可以尝试粘性服务。这将确保您的服务在被Android杀死时重新启动。 检查下面的链接。

在我看来,startForeground()只影响通知。但是我不需要任何通知…好吧,那样的话,试试粘性服务。