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.ComponentName.(ComponentName.java:77) の null オブジェクト参照で仮想メソッド '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(ネイティブ メソッド) 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 に答える