Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将广播消息从类发送到Android中的活动_Android - Fatal编程技术网

将广播消息从类发送到Android中的活动

将广播消息从类发送到Android中的活动,android,Android,我正在编写一个应用程序,它需要监视文件夹中正在创建的文件,然后根据所创建文件的文件名采取操作 我已经在使用广播接收器接收来自电池和usb连接的其他通知,因此能够从实现fileObserver的类发送广播将是一件好事 在主活动中,我为fileObserver实现了一个子类,但我不知道如何在发生事件时通知主活动文件已创建 这是小班 class FileListener extends FileObserver { private String mAbsolutePath; public F

我正在编写一个应用程序,它需要监视文件夹中正在创建的文件,然后根据所创建文件的文件名采取操作

我已经在使用广播接收器接收来自电池和usb连接的其他通知,因此能够从实现fileObserver的类发送广播将是一件好事

在主活动中,我为fileObserver实现了一个子类,但我不知道如何在发生事件时通知主活动文件已创建

这是小班

    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()

在构造函数的上下文中传递它。最好是应用程序上下文