0

今日、私の G. Analytics アカウントは、このコード行でエラーを報告します

private class GetSubscriptionListTask extends AsyncTask<Void, Void, Void> {

    boolean onlyUnread=true;

    public GetSubscriptionListTask(boolean onlyUnread) {
        super();
        this.onlyUnread=onlyUnread;
    }

    ProgressDialog progress;

    @Override
    protected void onPreExecute() {
          //Show progress Dialog here
          super.onPreExecute();

          // create ProgressDialog here ...
          progress = new ProgressDialog(getActivity()); // <-- That's the line
          progress.setMessage("Downloading Subscriptions");
          // set other progressbar attributes

          progress.setCancelable (false);
          progress.setIndeterminate (true);
          progress.show();

    }
}

これがラインです

progress = new ProgressDialog(getActivity()); // <-- That's the line

これはエラーレポートです

NullPointerException (@SubscriptionsListFragment$GetSubscriptionListTask:onPreExecute:415) {main}

どういう意味ですか?nullexception は、ProgressDialog または getActivity()? に関するものです。

*UPDATE* * このエラーは、100 以上のセッションで 1 回だけ発生します。

4

3 に答える 3

1

フラグメントがアクティビティから切り離され、getActivity() が null を返すことがあります。

ここでこれを見ることができます:http://developer.android.com/guide/components/fragments.html

注意: Fragment 内に Context オブジェクトが必要な場合は、getActivity() を呼び出すことができます。ただし、フラグメントがアクティビティにアタッチされている場合にのみ getActivity() を呼び出すように注意してください。フラグメントがまだアタッチされていないか、ライフサイクルの最後にデタッチされた場合、getActivity() は null を返します。

そのため、ここで NPE を取得します。

于 2013-09-20T10:04:52.470 に答える