1

我有一个 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:尝试在 android.content 的 android.content.ComponentName.(ComponentName.java:77) 的空对象引用上调用虚拟方法“java.lang.String android.content.Context.getPackageName()” .Intent.(Intent.java:3996) 在 com.samplersnapshoot.domiq.samplersnapshoot.snapObserver.onEvent(snapObserver.java:28) 在 android.os.FileObserver$ObserverThread.onEvent(FileObserver.java:122) 在 android.os .FileObserver$ObserverThread.observe(Native Method) at android.os.FileObserver$ObserverThread.run(FileObserver.java:85)

我有一个在后台运行的服务,它通过简单的 startWatching 调用 fileObserver。

4

1 回答 1

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
}
于 2015-07-09T19:09:14.543 回答