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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
ASDFD12
57 / 57 / 13
Регистрация: 15.09.2012
Сообщений: 542
#1

Блокирование интерфейса замедляет ответ сервера - Программирование Android

18.02.2014, 11:48. Просмотров 651. Ответов 8
Метки нет (Все метки)

Есть сервис, в котором бесконечный цикл.
В этом цикле идет:
1. загрузка звука.
2. воспроизведение звука
3. задержка.

Задержку делаю через Thread.sleep(ms).
Интернет медленный. Так вот когда экран не заблокирован, все идет более менее нормально. Когда блокирую, то интервал между воспроизведение резко увеличивается. Допустим из 5 сек - задано, 1мин - в реале.
Это тугой интернет, или блокировка как то влияет на интернет?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2014, 11:48
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Блокирование интерфейса замедляет ответ сервера (Программирование Android):

Ответ от PHP сервера - Программирование Android
Читал статью http://dajver.blogspot.com/2013/02/json.html А вот смотрите, если я хочу сделать все не на json, а чисто на пхп. Когда...

Обработать ответ сервера - Программирование Android
Здравствуйте. Яндекс отправляет мне вот такой ответ: This XML file does not appear to have any style information associated with it....

Подключение к БД с java (ответ от сервера) - Программирование Android
Привет всем! Вобщем, проблемма вот в чем. Допустим, На сервере в БД в таблице test есть некоторый текст. Как его получить в моё приложение?...

Отправить Get запрос и увидеть ответ сервера - Программирование Android
делаю так: HttpClient httpclient = new DefaultHttpClient(); HttpGet httpget = new HttpGet("http://www.vk.com"); try { ...

Блокирование движение за границу экрана - Программирование Android
Доброго времени суток, начинающий познаватель сей многожрущий оперативки операционки. И вопрос возник интересный эксперементировал с...

Indy: программа не получает правильный ответ от сервера, но сниффер показывает правильный ответ - Delphi
Всем привет. Моя программа должна сделать гет запрос на определенный сайт. Я включаю программу и снифферю. В сниффере показывается...

8
zulkis
684 / 611 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
19.02.2014, 20:58 #2
А зачем вам бесконечный цикл?
Ваша "блокировка" на интернет влиять не может, это факт.
Но то, как вы ее сделали, может влиять на вызовы методов, которые обращаются к серверам.
0
ASDFD12
57 / 57 / 13
Регистрация: 15.09.2012
Сообщений: 542
19.02.2014, 21:07  [ТС] #3
zulkis, можно поподробней.

Добавлено через 41 секунду
Цитата Сообщение от zulkis Посмотреть сообщение
А зачем вам бесконечный цикл?
для обновления данных
0
zulkis
684 / 611 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
20.02.2014, 09:53 #4
Стоп.
Thread.sleep(ms) в главном потоке похоже?
Если так, то "уберите это немедленно" и читайте как работать с UI потоком в android.
0
ASDFD12
57 / 57 / 13
Регистрация: 15.09.2012
Сообщений: 542
20.02.2014, 10:43  [ТС] #5
zulkis, читайте внимательно вопрос
Есть сервис, в котором бесконечный цикл.
В этом цикле идет:
1. загрузка звука.
2. воспроизведение звука
3. задержка.

Задержку делаю через Thread.sleep(ms).
Интернет медленный. Так вот когда экран не заблокирован, все идет более менее нормально. Когда блокирую, то интервал между воспроизведение резко увеличивается. Допустим из 5 сек - задано, 1мин - в реале.
0
zulkis
684 / 611 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
20.02.2014, 11:02 #6
Цитата Сообщение от ASDFD12 Посмотреть сообщение
читайте внимательно вопрос
ASDFD12, Фу как грубо, а я вам помочь хотел. Вы бы сначала сами в вопросе разобрались...

Caution: A service runs in the main thread of its hosting process—the service does not create its own thread and does not run in a separate process (unless you specify otherwise). This means that, if your service is going to do any CPU intensive work or blocking operations (such as MP3 playback or networking), you should create a new thread within the service to do that work. By using a separate thread, you will reduce the risk of Application Not Responding (ANR) errors and the application's main thread can remain dedicated to user interaction with your activities.
0
ASDFD12
57 / 57 / 13
Регистрация: 15.09.2012
Сообщений: 542
20.02.2014, 11:12  [ТС] #7
Извиняюсь за грубость.Никак не хотел нагрубить. Просто считал что обьяснил понятно, но видимо это не так. Спасибо за ваши старания. Я это понимаю и благодарен Вам.
По поводу вопроса, я в сервисе создаю отдельный поток, и в нем есть бесконечный цикл загрузка, воспроизведение, задержка.
Что заметил.
Ставлю задержку 15 сек. Экран не блокирую. Все идет нормально.
Если блокирую - воспроизведения идет но с рандомным интервалом.
В режиме отладки - все нормально.
0
zulkis
684 / 611 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
20.02.2014, 11:19 #8
Цитата Сообщение от ASDFD12 Посмотреть сообщение
я в сервисе создаю отдельный поток
Другое дело, новая инфа.

А может уберете цикл и замените его на вызов метода, который будет загружать и воспроизводить музыку, а потом вызывать самого себя по таймеру?
1
ASDFD12
57 / 57 / 13
Регистрация: 15.09.2012
Сообщений: 542
21.02.2014, 02:01  [ТС] #9
не могли бы подсказать как по таймеру делать вызов))

Добавлено через 12 минут
zulkis, кое-что нашел, буду пробовать

Добавлено через 5 часов 25 минут
пробовал
Java
1
2
3
4
5
6
7
Timer myTimer = new Timer();
myTimer.schedule(new TimerTask() {
    @Override
    public void run() {
        myCycle();
    }
}, 0,15000);
результат тот же. Задержка через
Java
1
TimeUnit.SECONDS.sleep(15);
тоже не помогло. Заметил если телефон на зарядке - все нормально работает (тоесть не только в режиме отладки).
Может быть надо что-то с режимом электропитания поменять, через PowerManader.

Добавлено через 8 часов 58 минут
помогло включение режима PARTIAL_WAKE_LOCK
1
21.02.2014, 02:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2014, 02:01
Привет! Вот еще темы с ответами:

Ответ сервера - C#
Приветствую Всех. У меня вот такой вопрос. Получаю ответ от сервера вот таким форматом ac ‹ ЊђЛѓ Dчэ ТЅЏ Как...

Ответ от сервера - Delphi
Ребята подскажите, пожалуйста. Сделал сервер, ответ от него посылаю в таком в виде: ServerSocket1.Socket.Connections.SendText('hello...

Ответ сервера - C++
Вот смотрите, есть TCP клиент и TCP сервер. Клиент стучится, сервер слушает. И вот установлено соединение между клиентом и сервером. И у...

Ответ сервера - PHP
Есть некий скрипт, для генерации конечного результат идет запрос на сервер Работающая версия отсылает запрос на адрес и получает ответ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru