我有一个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的服务。
答案 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
}