Android 当方向改变时,应用程序压碎并抛出NullPointerException

Android 当方向改变时,应用程序压碎并抛出NullPointerException,android,android-fragments,screen-orientation,Android,Android Fragments,Screen Orientation,我正在使用Fragment并将AsyncTask放入其中,以执行一些面向网络的任务。一切正常。当我将方向从protrait更改为横向时,它也工作正常。但当我再次将方向更改为纵向时,它崩溃了。这是我的代码 public class ProblemStatistics extends SherlockProgressFragment { View mContentView; @Override public View onCreateView(LayoutInflater

我正在使用
Fragment
并将
AsyncTask
放入其中,以执行一些面向网络的任务。一切正常。当我将方向从protrait更改为横向时,它也工作正常。但当我再次将方向更改为
纵向时,它崩溃了。这是我的代码

public class ProblemStatistics extends SherlockProgressFragment {
    View mContentView;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        mContentView = inflater.inflate(R.layout.submission_statistics,
                container, false);
        return super.onCreateView(inflater, container, savedInstanceState);
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        setContentShown(false);
        setContentView(mContentView);
        Bundle bundle = this.getArguments();
        int problemNo = 100;
        if (bundle != null) {
            problemNo = bundle.getInt("problem_no", problemNo);
        }
        new GetProblemStatisticTask().execute(CommonUtils.SPECIFIC_PROBLEM_URL + problemNo);
    }

    @Override
    public void onStop() {
        ((MainActivity) getSherlockActivity()).setProblemStatistics(false);
        super.onStop();
    }

    protected class GetProblemStatisticTask extends
            AsyncTask<String, Void, InputStreamReader> {

        @Override
        protected InputStreamReader doInBackground(String... params) {
            return new JSONDownloader().getJSONStringFromUrl(params[0]);
        }

        @Override
        protected void onPostExecute(InputStreamReader isr) {
            super.onPostExecute(isr);
            // other stuff and parsing related code
            layout.addView(gView);
            setContentShown(true);
        }
    }

}

当手机的方向改变时,您的活动将被破坏并再次创建

您可以在AndroidManifest.xml中使用它

activity
   your activity...
   android:configChanges="orientation|keyboardHidden|screenSize">
 activity
编辑:

作为对这一答案的补充:

文档中说:“片段必须始终嵌入到活动中,并且片段的生命周期直接受宿主活动的生命周期影响。例如,当活动暂停时,其中的所有片段都会暂停,当活动被销毁时,所有片段都会暂停。”

这里是链接


您不能仅为某些片段重新创建活动,您应该重新考虑您的方法。

当手机的方向发生变化时,您的活动将被销毁并再次创建

您可以在AndroidManifest.xml中使用它

activity
   your activity...
   android:configChanges="orientation|keyboardHidden|screenSize">
 activity
编辑:

作为对这一答案的补充:

文档中说:“片段必须始终嵌入到活动中,并且片段的生命周期直接受宿主活动的生命周期影响。例如,当活动暂停时,其中的所有片段都会暂停,当活动被销毁时,所有片段都会暂停。”

这里是链接


您不能仅为某些片段重新创建活动,您应该重新考虑您的方法。

检查此项可能有助于在线最新提交的内容。java:*84*检查此项检查此项可能有助于在线最新提交的内容。java:*84*检查此项我不想让我的
活动
重新创建:(如果您添加此代码,您的活动将不会被重新创建,现在您的活动将在每次更改方向时被创建。问题是,对于某些
片段
我需要
重新创建该活动,我如何指定此项?-活动将从某些片段重新创建,有时不会?我不想让我的
a要重新创建的活动性
:(如果您添加此代码,您的活动将不会被重新创建,现在您的活动将在每次更改方向时被创建。问题是,对于某些
片段
我需要
重新创建
活动,我如何指定此项?-活动将从某些片段重新创建,有时不会?