Asynctask
Android でキャンセルしたいのですが、実装に問題があります。
私のコードは次のとおりです。
プライベート クラス SynchroTask extends AsyncTask{ private volatile boolean running = true;
@Override
protected void onPreExecute() {
super.onPreExecute();
//INITIALIZATIONS
}
@Override
protected Void doInBackground(Void... params) {
while (running) {
//TASK
}
return null;
}
@Override
protected void onCancelled(){
super.onCancelled();
running = false;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
Intent intent = AccountAddActivity.getIntent(getActivity());
startActivity(intent);
getActivity().finish();
}
}
}
と :
mSynchroTask = new SynchroTask();
cancelButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if (mSynchroTask != null && mSynchroTask.getStatus() != AsyncTask.Status.FINISHED){
HDCApplication.hdcAppManager.mSynchroManager.removeAllTask();
mSynchroTask.cancel(true);
mSynchroTask = null;
}
}
});