谁能帮我解决这个奇怪的错误? 当我收到错误时,我标记了该行。 谢谢
/************************************************
* 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
}
}
的 的 * * UPDATE
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
mCallbacks = (Callbacks)activity;
}
@Override
public void onDetach() {
super.onDetach();
mCallbacks = null;
}
答案 0 :(得分:2)
您的mCallbacks
变量可能为空。在调用方法之前,请使用防御性编程并检查null
。另外,不要检查布尔值是否为假,而是使用非!
逻辑运算符。
@Override
protected void onPostExecute(Void v) {
if (!this.isCancelled()){
Log.d(TAG, "chiedo aggiornamento updateUI");
if (mCallbacks != null) {
mCallbacks.onSubscriptionsUpdated();
}
}
}