我正在尝试在我的 Activity 的 onResume() 事件中运行异步任务。我的目标是每次 Activity 进入前台时运行任务。当我在模拟器/电话中运行它时,当遇到 onPreExecute 方法中存在的 ProgressDialog 代码时,应用程序强制关闭。
这是我的活动代码:
public class PostActivity extends Activity {
private ProgressDialog progressBar;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.post);
}
public void onResume() {
super.onResume();
new LoadFeedTask().execute();
}
public class LoadFeedTask extends AsyncTask<Void, Void, Boolean> {
protected void onPreExecute() {
progressBar.setCancelable(false);
progressBar.setMessage("Logging in...");
progressBar.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressBar.show();
}
@Override
protected Boolean doInBackground(Void... params) {
// TODO Auto-generated method stub
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
Log.d(TAG, "Checking Internet Connectivity");
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
return true;
}
return false;
}
protected void onPostExecute(Boolean result) {
progressBar.dismiss();
if (result == true) {
//Do Something
}
if (result == false) {
//Do Something Else
}
}
}
}
当我检查 LogCat 的输出时,它在 progressBar.setCancelable(false) 处显示 NPE。即使经过数小时的努力,我也无法解决它。请帮忙。抱歉,如果这是一个重复的问题,我似乎无法在 SO 中找到与我的问题相关的任何此类问题