将广播消息从类发送到Android中的活动
我正在编写一个应用程序,它需要监视文件夹中正在创建的文件,然后根据所创建文件的文件名采取操作 我已经在使用广播接收器接收来自电池和usb连接的其他通知,因此能够从实现fileObserver的类发送广播将是一件好事 在主活动中,我为fileObserver实现了一个子类,但我不知道如何在发生事件时通知主活动文件已创建 这是小班将广播消息从类发送到Android中的活动,android,Android,我正在编写一个应用程序,它需要监视文件夹中正在创建的文件,然后根据所创建文件的文件名采取操作 我已经在使用广播接收器接收来自电池和usb连接的其他通知,因此能够从实现fileObserver的类发送广播将是一件好事 在主活动中,我为fileObserver实现了一个子类,但我不知道如何在发生事件时通知主活动文件已创建 这是小班 class FileListener extends FileObserver { private String mAbsolutePath; public F
class FileListener extends FileObserver {
private String mAbsolutePath;
public FileListener(String path){
super(path);
mAbsolutePath = path;
Log.d("FileObserver",path);
}
@Override
public void onEvent(int event, String path){
switch(event){
case FileObserver.CREATE:
Intent i = new Intent("CREATED");
context.sendBroadcast(i);
break;
case FileObserver.DELETE:
Log.d("FileObserver", "DELETE");
break;
case FileObserver.DELETE_SELF:
Log.d("FileObserver", "DELETE_SELF");
break;
case FileObserver.MODIFY:
Log.d("FileObserver", "MODIFY");
break;
case FileObserver.MOVED_FROM:
Log.d("FileObserver", "MOVED_FROM");
break;
case FileObserver.MOVED_TO:
Log.d("FileObserver", "MOVED_TO");
break;
case FileObserver.MOVE_SELF:
Log.d("FileObserver", "MOVE_SELF");
break;
}
}
}
我无法在类中使用context.sendBroadcast,因为它没有上下文。这一切都很令人困惑
谢谢您需要做的就是像这样将构造函数传递到类中:
class FileListener extends FileObserver {
private String mAbsolutePath;
private Context mContext;
public FileListener(String path, Context context){
super(path);
mAbsolutePath = path;
mContext = context;
Log.d("FileObserver",path);
}
//use context in your file.
然后可以从活动或片段中调用类,如:
newfilelistener(path,getApplicationContext()
。在构造函数的上下文中传递它。最好是应用程序上下文