저는 Android를 처음 사용하고 제 간단한 응용 프로그램에 문제가 있습니다. AsyncTask를 사용하는 매우 간단한 카운터를 사용합니다.내 응용 프로그램이 AsyncTask와 충돌 함
앱을 실행하고 카운터를 시작하면 10으로 계산되고 '완료'가 인쇄됩니다. 응용 프로그램이 그냥 반감, 나는 이유를 모르겠다. 여기 내 코드가있다. (활동에는 작업을 생성, 시작 및 취소하는 3 개의 버튼이 있습니다).
public class AsyncTaskActivity extends AppCompatActivity {
AsyncTask myAsyncTask;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_async_task);
}
public static void startActivity(Context context){
Intent intent = new Intent(context, AsyncTaskActivity.class);
context.startActivity(intent);
}
public void createNewTask(View view) {
TextView textView = findViewById(R.id.text_view_id);
myAsyncTask = new MyAsyncTask(textView);
}
public void startTask(View view) {
myAsyncTask.execute();
}
public void cancelTask(View view) {
myAsyncTask.cancel(true);
}
private static class MyAsyncTask extends AsyncTask{
private TextView textView;
public MyAsyncTask(TextView textView){
this.textView = textView;
}
@Override
protected Object doInBackground(Object[] objects) {
for(int counter = 0; counter <= 10; counter ++){
if(!isCancelled()) {
textView.setText(String.valueOf(counter));
SystemClock.sleep(500);
}
else
break;
}
textView.setText("DONE!");
return null;
}
}
충돌 로그 게시 – MichaelStoddart