0

我有一个服务:

public class FileObserverService extends Service {

private FileObserverForNewFirFiles fObs;

@Override
public void onCreate() {
    Log.i("FILE_OBSERVER_SERVICE: ", "INSIDE ONCREATE()"); 
    File f = new File("/mnt/sdcard/Bluetooth"); 
    createFileObserver(f);

}


public void createFileObserver(File f) {

    if(!f.isDirectory()) {
        Log.i("FILEOBSERVER: ", "FILE NOT A DIRECTORY!"); 
    }
    else {
        fObs = new FileObserverForNewFirFiles(f.getAbsolutePath()); 
    }
}

@Override
public void onStart(Intent i, int startid) {
    fObs.startWatching();
    Toast.makeText(this.getApplicationContext(), "start monitoring file modification", Toast.LENGTH_SHORT).show();
}


@Override 
public void onDestroy() {
    fObs.stopWatching();
    Toast.makeText(this.getApplicationContext(), "stop monitoring file modification", Toast.LENGTH_SHORT).show();
}


@Override
public IBinder onBind(Intent arg0) {
    return null;
}
}

在我的主要活动中,我这样称呼这个类:

startService(new Intent(ThisClass.this, FileObserverService.class));

我认为该onCreate方法会向 打印出一些东西LogCat,指的是该方法的第一行。但它似乎没有这样做。任何打击?

4

1 回答 1

0

我认为您真正想要的是 IntentService

http://developer.android.com/reference/android/app/IntentService.html

只需替换您的 onCreate 方法签名

使用 onStartCommand

基本上,您还没有完成所有需要做的事情来让常规的旧服务正常运行,而 IntentService 将完成所有这些工作,而无需您自己付出更多的努力。

于 2012-08-06T07:31:17.213 回答