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を呼び出すサービスがバックグラウンドで実行されています。