我有一项服务:
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
打印一些内容,指的是此方法的第一行。但它似乎没有这样做。任何打击?
答案 0 :(得分:0)
我认为你真正想要的是一个IntentService
http://developer.android.com/reference/android/app/IntentService.html
只需替换onCreate的方法签名
使用onStartCommand
基本上,你没有做任何你需要做的事情来获得常规的旧服务,而IntentService将完成所有工作而不需要你自己的努力。