-2

この奇妙なエラーについて誰が助けてくれますか? エラーが発生したときに行をマークしました。ありがとう

         /************************************************
         *      setItemsAsReadTask
         ************************************************/

        private class SetItemsAsReadTask extends AsyncTask<ArrayList<FeedItem>, Void, Void> {

            @Override
              protected void onPreExecute() {
                //AGGIORNO LISTVIEW SUBSCRIPTIONS

                }


            @Override
            protected Void doInBackground(ArrayList<FeedItem> ... articoli) {
                if(this.isCancelled()==false){
                    if(articoli.length!=0){
                ArrayList<FeedItem> segnaComeLetti = articoli[0];
                reader.setMultipleNewsAsRead(segnaComeLetti);
                    }
                }
                return null;

            }

            @Override
            protected void onPostExecute(Void v) {
                //TODO TRUE O FALSE
                if(this.isCancelled()==false){
                    Log.d(TAG, "chiedo aggiornamento updateUI");
                    mCallbacks.onSubscriptionsUpdated();
                }<---- that's the line of the error
            }
        }

* *更新

@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
    mCallbacks = (Callbacks)activity;
}

@Override
public void onDetach() {
    super.onDetach();
    mCallbacks = null;
}
4

1 に答える 1

2

あなたのmCallbacks変数はおそらくnullです。防御的プログラミングを使用しnull、メソッドを呼び出す前に確認してください。また、ブール値が false かどうかをチェックする代わりに、not!論理演算子を使用してください。

@Override
protected void onPostExecute(Void v) {
    if (!this.isCancelled()){
        Log.d(TAG, "chiedo aggiornamento updateUI");
        if (mCallbacks != null) {
            mCallbacks.onSubscriptionsUpdated();
        }
    }
}
于 2013-09-18T15:22:16.513 に答える