У меня есть AsyncTask, который записывает данные в сокет, и я не хочу делать событие onTouch, которое удерживает кнопку до ее выпуска.Я фактически сделал это с AsyncTask, но приложение вылетает после записи в сокет.Должен ли я использовать потоки вместо этого или есть лучшее решение этой проблемы?
Редактировать: я получаю сообщение "Ожидание блокировки GC Alloc" в logcat.
Код OnTouchListener:
buttonUp.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
while(true){
if (event.getAction() == MotionEvent.ACTION_DOWN){
new moveForward().execute();
} else if (event.getAction() == MotionEvent.ACTION_UP){
break;
}
}
return false;
}
});
Код AsyncTask:
private class moveForward extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... voids) {
try {
MainActivity.client.write('u');
} catch (IOException e) {
e.printStackTrace();
}
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
}
}