求解,模擬進度條問題。
public?class?ProgressBars?extends?Activity{
private?ProgressBar?bar;
private?myAsyncTask?asyncTask;
@Override
protected?void?onCreate(Bundle?savedInstanceState)?{
//?TODO?Auto-generated?method?stub
super.onCreate(savedInstanceState);
setContentView(R.layout.progerssbar);
bar=(ProgressBar)?findViewById(R.id.pro);
asyncTask.execute();
}
@Override
protected?void?onPause()?{
//?TODO?Auto-generated?method?stub
super.onPause();
if(asyncTask!=null&&asyncTask.getStatus()==asyncTask.getStatus().RUNNING){
asyncTask.cancel(true);
}
}
class?myAsyncTask?extends?AsyncTask<Void,?Integer,?Void>{
@Override
protected?Void?doInBackground(Void...?arg0)?{
//?TODO?Auto-generated?method?stub
for?(int?i?=?0;?i?<?100;?i++)?{
if(isCancelled()){
break;
}
publishProgress(i);
try?{
Thread.sleep(300);
}?catch?(InterruptedException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
}
return?null;
}
@Override
protected?void?onProgressUpdate(Integer...?values)?{
//?TODO?Auto-generated?method?stub
super.onProgressUpdate(values);
if(isCancelled()){
return;
}
bar.setProgress(values[0]);
}
}
}java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.astest/com.example.astest.ProgressBars}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.AsyncTask com.example.astest.ProgressBars$myAsyncTask.execute(java.lang.Object[])' on a null object reference
主界面activity中設置了按鈕的點擊事件,也聲明了activity,不知道為什么還會報空指針異常
2016-08-07
在asyncTask.execute();前面加asyncTask=new MyAsyncTask();