文件观察者onEvent()

时间:2015-07-09 18:39:21

标签: java android fileobserver

我有一个fileObserver正在运行,现在我需要在onEvent被调用后启动一个活动,我不太确定如何做到这一点,因为我无法获得startActivity()。

这是我目前的代码:

public class snapObserver extends FileObserver {

public final String TAG = "DEBUG";
public static Context mContext;

public snapObserver(String path) {
    super(path, FileObserver.CREATE);
}

@Override
public void onEvent(int event, String path) {
    if (path == null){
        Log.d(TAG, "path is null");
    }

    Log.d(TAG, "File created!!!!");
    mContext.startActivity(new Intent(mContext, editActivity.class));
}
}

此代码抛出java.lang.NullPointerException

  

java.lang.NullPointerException:尝试调用虚方法   'null。上的java.lang.String android.content.Context.getPackageName()'   对象参考               在android.content.ComponentName。(ComponentName.java:77)               在android.content.Intent。(Intent.java:3996)               at com.samplersnapshoot.domiq.samplersnapshoot.snapObserver.onEvent(snapObserver.java:28)               在android.os.FileObserver $ ObserverThread.onEvent(FileObserver.java:122)               在android.os.FileObserver $ ObserverThread.observe(本机方法)               在android.os.FileObserver $ ObserverThread.run(FileObserver.java:85)

我在后台运行一个使用简单的startWatching调用fileObserver的服务。

1 个答案:

答案 0 :(得分:0)

尝试这样做:

public class snapObserver extends FileObserer {
    private Context mContext;

    //any code

    public snapObserver(String path, Context context) {
        super(path, FileObserver.CREATE);

        this.mContext = context;
    }

    //any code
}