Я использую AsynchTask в своем приложении, чтобы сохранить запись на сервере.Android AsynchTask в линейной компоновке - метод должен вызываться из пользовательского интерфейса Thread
Метод, который я использую в моей doInBackground ничего не делать вообще с UI, но я получаю следующее сообщение об ошибке
Метод tryThis должен вызываться из потока пользовательского интерфейса, в данный момент выводится нить рабочий
Как я уже сказал, ничего не происходит, что связано с пользовательским интерфейсом. Таким образом, я отключил свой код, чтобы попытаться определить проблему, и теперь она почти не годится. См. Ниже
Вы заметите, что вместо кода AsynchTask, находящегося в расширении Activity, он находится в расширении LinearLayout, поскольку я использую это для пользовательского представления. Я сильно подозреваю, что именно здесь лежит корень проблемы, но я не понимаю, почему и не знаю, как обойти это.
public class ExerciseView extends LinearLayout {
public ExerciseView(Context context, AttributeSet attrs) {
super(context, attrs);
}
private class saveRecordTask extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... params) {
String returnString = "";
try {
returnString = tryThis();
//
} catch (Exception e) {
e.printStackTrace();
}
return returnString;
}
@Override
protected void onPostExecute(String result) {
}
@Override
protected void onPreExecute() {
//startProgress();
}
@Override
protected void onProgressUpdate(String... text) {
// Things to be done while execution of long running operation is in
// progress. For example updating ProgessDialog
}
}
public String tryThis() {
String hi = "hi";
return hi;
}
}
Я предполагаю, что я мог бы использовать интерфейс в настраиваемое представление, чтобы дать данные на активность в нужное время, а затем сделать AsynchTask в деятельности, но я бы очень хотел, чтобы держать все вместе в обычае чтобы минимизировать количество кода, которое нужно записать каждый раз, когда я его использую.
ли этот код все еще выдаст сообщение об ошибке? –
Просьба отправить полный стек и фрагмент, в котором выполняется AsyncTask. –
@MikeM. Эта ошибка возникает в Android Studio, поэтому я не дошел до ее компиляции или даже записал ее. – 365SplendidSuns