Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Ошибка OutOfMemory в Service - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Ошибка при восстановлении фрагмента http://www.cyberforum.ru/android-dev/thread1855990.html
Привет) В общем вопрос такой. У меня есть активность навигации, из которой я взвываю нужный мне фрагмент. Проблема такая, когда я убиваю процесс, и захожу загонного в приложение, то оно уже...
Программирование Android Среда разработки на С++ Покажите "дорожку" куда топать хоть ,что бы приложение для Android на C++ писать ? (Статьи,книги,ссылки,студии) Про C# не говорите ! http://www.cyberforum.ru/android-dev/thread1855799.html
Будильник на android с открытым кодом Программирование Android
Может кто то поделиться ссылками на какой-то простой будильник на android с открытым кодом? Я пока нашел : 1) https://github.com/lithium/alarming 2)...
Программирование Android Ошибка в прокручиваемом списке внутри фрагмента
Большинство ошибок таки сумел подправить. Осталось последняя: linLayout - Главный лайаут Фрагмента item - другой лайаут linLayout.addView(item); Выдает ошибку: java.lang.NullPointerException:...
Программирование Android Программирование - с чего начать? http://www.cyberforum.ru/android-dev/thread1855381.html
Привет всем хочу программировать на платформе Андроид , какой язык программирования посоветуете выучить , и какие книги нужно читать ?
Программирование Android Функция обратная getString() Здравствуйте, всем. Часто использую getString(R.string.somestring, value1, value2) применительно к TextView.setText(); Далее бывает необходимо получить текст обратно, например s =... подробнее

Показать сообщение отдельно
ILNAR_93
Android
221 / 221 / 23
Регистрация: 19.01.2013
Сообщений: 1,701
Записей в блоге: 3

Ошибка OutOfMemory в Service - Программирование Android

21.11.2016, 12:04. Просмотров 219. Ответов 3
Метки (Все метки)

Используется
Retrofit и GsonConverterFactory


Есть фрагнмент поиска, при открытии запускается сервис и периодически(8 секунд) получает json - до выполнения условия, а во фрагменте ProgressBar.

При каждом получении данных
запускаю Service для актуализации данных в сервисе

Java
1
2
3
4
5
Intent service = new Intent(ctx, find.class);
                                    service.putExtra(Constants.OPEN, false);
                                    service.putExtra(Constants.INFO_TYPE, 1);
                                    service.putExtra(Constants.Serializable_CLASS, response.body().Data);
                                    context.startService(service);

в сервисе актуализирую данные след образом

Java
1
2
3
4
5
6
7
8
9
 for(int i = 0; i< List.size(); i++){
            if (List.get(i).Id.equalsIgnoreCase(fiClass.Id)){
                List.set(i, fiClass);
                Log.d("service", "Изменил "+fiClass.Id);
                return;
            }
        }
        Log.d("service", "Добавил "+fiClass.Id);
        List.add(fiClass);

Минуту работает и валится..OutOfMemory. Что делаю не так?

Добавлено через 14 минут
XML
1
2
3
4
5
6
7
8
9
10
11
FATAL EXCEPTION: main
                                                                  Process: su.el_teh.taxiya, PID: 32694
                                                                  java.lang.OutOfMemoryError: Could not allocate JNI Env
                                                                      at java.lang.Thread.nativeCreate(Native Method)
                                                                      at java.lang.Thread.start(Thread.java:1063)
                                                                      at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:921)
                                                                      at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1339)
                                                                      at com.squareup.okhttp.Dispatcher.enqueue(Dispatcher.java:110)
                                                                      at com.squareup.okhttp.Call.enqueue(Call.java:113)
                                                                      at com.squareup.okhttp.Call.enqueue(Call.java:105)
                                                                      at retrofit.OkHttpCall.enqueue(OkHttpCall.java:70)
Добавлено через 44 минуты
В сервисе создается RespClass один раз при создании сервиса и вызывается метод create - периодичностью 8 секунд.

из-за этого может быть OutOfMemory?


Java
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
 public class RespClass {
 
 
public void create(Model model){
            Retrofit restAdapter = new Retrofit.Builder()
                .baseUrl(singleton.serverURL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        restAdapter.client().setReadTimeout(60, TimeUnit.SECONDS);
        restAdapter.client().setConnectTimeout(10, TimeUnit.SECONDS);
        TaxiAPI post = restAdapter.create(TaxiAPI.class);
        try {
            post.create(model).enqueue(new retrofit.Callback<Apig>() {
                @Override
                public void onResponse(retrofit.Response<Apig> response, Retrofit retrofit) {
                   
                }
 
                @Override
                public void onFailure(Throwable t) {
                    Log.d("TX", "ERRORRR " + t.getMessage());
                   }
            });
        } catch (Exception ex)
        {
            ex.printStackTrace();
        }
    }
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru