powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / Разработка под мобильные платформы [игнор отключен] [закрыт для гостей] / Android AsyncTask
4 сообщений из 4, страница 1 из 1
Android AsyncTask
    #39034233
Librit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго всем дня форумчане.
У меня такая беда. Понадобилось распараллелить потоки, воспользовался AsyncTask, создал на его базе класс
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
private class DB_Work_Info extends AsyncTask<String,Integer,String> {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            Toast.makeText(getApplicationContext(),"Отправляю запрос",Toast.LENGTH_SHORT).show();
        }

        @Override
        protected String doInBackground(String... params) {
            String SRes = "";
            
            Toast.makeText(getApplicationContext(),"Зашли в метод асинхронного выполнения",Toast.LENGTH_LONG).show();
            return SRes;
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            Toast.makeText(getApplicationContext(),"Операция завершена",Toast.LENGTH_SHORT).show();
        }


Вроде ничего криминального не сделал, но при вызове на исполнение программа, загруженная на конечное устройство, вылетает.
Вызываю следующим образом:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
@Override
        public void afterTextChanged(Editable s) {
            //необходимо запросить данные по контракту и особым образом их представить

            try {

                DB_Work_Info DBWI = new DB_Work_Info();
                if(DBWI!=null) {
                    if(!DBWI.isCancelled()) {
                        Toast.makeText(getApplicationContext(),"Текущий статус: "+DBWI.getStatus(),Toast.LENGTH_LONG).show();
                        TimeUnit.SECONDS.sleep(2);
                        if (s.length() > 0) {   //проверили, что у нас есть какой-то текст
                            try {
                                CurrIndex = 0;
                                String Query = "Select Executive,Customer,Beneficial,N_Contract,date_contract,name_contract From SCh_Contracts Where (idContract = " + s.toString() + ")";
                                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
                                    DBWI.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, (String) Query);
                                } else {
                                    DBWI.execute((String) Query);
                                }
                            } catch (Exception ex) {
                                Log.v("ContractNumberChange", "Error occurred at moment to execute BackGroundWorker: " + ex.getMessage());
                                ex.printStackTrace();
                                TV_ContractInfo.setText(ex.getMessage());
                            }
                        } else {

                            if (ET_ContractNum.getText().length() != 0) {
                                TV_ContractInfo.setText("");
                            }
                        }
                    }else
                    {
                        Toast.makeText(getApplicationContext(),"Кто то прекратил работу асинхронного класса без моего ведома",Toast.LENGTH_LONG).show();
                    }
                }
                else
                {
                    Toast.makeText(getApplicationContext(),"Не дали мне ссылку на асинхронный класс",Toast.LENGTH_LONG).show();
                }
              } catch (Exception ex) {
                Log.v("ContractNumberChange", "Error occurred at initialization moment: " + ex.getMessage());
                ex.printStackTrace();
            }
        }


Помогите разобраться в чём проблема. В логах ничего не нашёл по тем тэгам, которые выставлял.

P.S. на эмуляторе всё работает как часы.
...
Рейтинг: 0 / 0
Android AsyncTask
    #39034241
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LibritВ логах ничего не нашёл по тем тэгам, которые выставлял.
Не нашел, не значит, что там ничего нет. Что там в логах есть по времени в отрезках между выполнением и вылетом?
LibritP.S. на эмуляторе всё работает как часы.
Эмулятор эмулятору рознь. Молчу уж про разницу между эмулятором и устройством.
...
Рейтинг: 0 / 0
Android AsyncTask
    #39034249
Librit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman,
Сам лог в момент работы программы и до вылета.
...
Рейтинг: 0 / 0
Android AsyncTask
    #39034265
Librit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman,
Не внимательность губит. SDK на эмуляторе стояла 21. На конечном устройстве 19. Не совместимость породила ошибку.
Спасибо за готовность помочь.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Разработка под мобильные платформы [игнор отключен] [закрыт для гостей] / Android AsyncTask
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]