我是新手,正在学习Android开发,我的简单应用程序出现了问题。我使用了一个非常简单的计数器,使用了AsyncTask。
当我运行应用程序并开始计数时,它计数到10,然后没有打印“完成!”而是崩溃了,我不知道为什么。这是我的代码。(该活动有3个按钮来创建、启动和取消任务)。
当我运行应用程序并开始计数时,它计数到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;
}
}