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


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