我有一个FragmentActivity
,并且我在onResume
方法中绑定了一项服务。我还有一个Fragment
被添加到活动中。 Fragment
将从doInBackground
中的AsyncTask
方法调用服务,先进行初始化,然后在初始化后,片段中的按钮将变为启用状态。但是当我尝试从片段的AsyncTask
或onActivityCreated
方法执行onResume
时,我在尝试获取服务时得到NullPointerException
。
@Override
public void onResume() {
new AsyncTask<Void, Void, Boolean>() {
@Override
protected Boolean doInBackground(Void params) {
return activity.getMyService().doSomeInit(); // getMyService() returns null
}
@Override
protected void onPostExecute(Boolean result) {
someButton.enabled(result);
}
}.execute();
}
活动将连接到服务,但是如何告诉片段服务已准备好使用(因此不再为null)?
答案 0 :(得分:0)
我假设您在某个时刻从片段中将变量activity
设置为getActivity()
。我的猜测是,当你这样做时片段没有附加,因此activity
为空而不是getMyService()