file android closed,android – File Observer无法使用intent服务

我发现了一个很好的类来扩展抽象的File Observer类……

import android.os.FileObserver;

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

import android.util.Log;

public class FileSync extends FileObserver {

public String absolutePath;

public String uid;

public FileSync(String path,String uidd) {

super(path,FileObserver.ALL_EVENTS);

absolutePath = path;

uid = uidd;

}

@Override

public void onEvent(int event,String path) {

if (path == null) { //path is the name of the file... I think its absolute

return;

}

//a new file or subdirectory was created under the monitored directory

if ((FileObserver.CREATE & event)!=0) {

doFileUpload(path,uid);

}

//a file or directory was opened

if ((FileObserver.OPEN & event)!=0) {

//TODO Nothing... yet

}

//data was read from a file

if ((FileObserver.ACCESS & event)!=0) {

//TODO Nothing... yet

}

//data was written to a file

if ((FileObserver.MODIFY & event)!=0) {

doFileUpload(path,uid);

}

//someone has a file or directory open read-only,and closed it

if ((FileObserver.CLOSE_NOWRITE & event)!=0) {

//TODO Nothing... yet

}

//someone has a file or directory open for writing,and closed it

if ((FileObserver.CLOSE_WRITE & event)!=0) {

doFileUpload(path,uid);

}

//[todo: consider combine this one with one below]

//a file was deleted from the monitored directory

if ((FileObserver.DELETE & event)!=0) {

//TODO Remove file from the server

}

//the monitored file or directory was deleted,monitoring effectively stops

if ((FileObserver.DELETE_SELF & event)!=0) {

//TODO Toast an error,recreate the folder,resync and restart monitoring

}

//a file or subdirectory was moved from the monitored directory

if ((FileObserver.MOVED_FROM & event)!=0) {

//TODO Delete from the server

}

//a file or subdirectory was moved to the monitored directory

if ((FileObserver.MOVED_TO & event)!=0) {

doFileUpload(path,uid);

}

//the monitored file or directory was moved; monitoring continues

if ((FileObserver.MOVE_SELF & event)!=0) {

//TODO Recreate the folder and show toast

}

//Metadata (permissions,owner,timestamp) was changed explicitly

if ((FileObserver.ATTRIB & event)!=0) {

//TODO Nothing... Yet

}

}

我在IntentService的onCreate中创建了三个这样的观察者,如下所示:

new File("/sdcard/Docs/").mkdir();

FileSync files = new FileSync("/sdcard/Docs/",uid);

FileSync pictures = new FileSync(Environment.DIRECTORY_PICTURES,uid);

FileSync music = new FileSync(Environment.DIRECTORY_MUSIC,uid);

files.startWatching();

pictures.startWatching();

music.startWatching();

不仅观察者不工作,而且mkdir功能不起作用.

有任何想法吗?谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值