Когда Android остановит свой процессор без блокировки Wake? -- android поле с участием wakelock пол Связанный проблема

When will android stop its cpu without wake lock?


8
vote

проблема

русский

Я знаю, что Android использует Sake Blance, чтобы поддерживать запуск CPU или на экране. Очевидно, что Screen Sake Box предотвращает выключение экрана активного таймера после периода бездействия пользователя.

Но мне интересно, когда именно будет действовать блокировка разбойника ЦП.

1. Если я создаю новый поток и сохраняю дренирующий процессор в фоновом режиме без какого-либо блокировки Wake, выключите экран, не остановят его. Это остановится и когда он остановится?

2. Что касается потока, запланированного с Timer.schedule ()?

3. Это приводит к другому вопросу, если я держу длительное сокет в сервисе, который заблокирован на Socket.read (). Должен ли я приобрести блокировку Wake, чтобы убедиться, что служба будет пробуждаться, когда сокет получит любые удаленные данные с данными?

спасибо.

Английский оригинал

I know android use wake lock to keep cpu running or screen on. It's obvious that screen wake lock prevents the user active timer from turning off the screen after a period of user inactivity.

But I'm wondering when exactly will the cpu wake lock take effect.

1.If I create a new thread and keep draining cpu in background with out any wake lock, turn off the screen will not stop it. Will it stop and when will it stop?

2.What about a thread scheduled with Timer.schedule()?

3.It leads to another question, if I keep a long socket connection in a service, which is blocked at socket.read(). Do I have to acquire a wake lock to make sure the service will be wakeup when the socket receives any data form remote?

Thanks.

</div
     
 
 

Список ответов

8
 
vote
vote
Лучший ответ
 

Ответы на все ваши подпункты

  1. Android спит, когда не активно не активен. Неважно, какие процессы и потоки работают, все еще будет спать. Это означает, что если ваша нить или какой-то другой процесс не включили, заблокируйте разбойник, ваша нить не будет выполнена, и, следовательно, не будет истощать батарею. Поток будет выполнен только тогда, когда какой-то другой процесс приобретает Wakelock.

  2. То же самое относится к таймеру .schedule (). Скажите, что вы пишете таймер, который выполняет каждую секунду, но без какого-либо блокировки Wake, и скажем, Android идет спать на 10 секунд. Когда он просыпается на 11-й секунду, он будет идентифицировать, что ваш таймер истек 10 раз, он просто будет просто отказаться от экземпляров и выполнить его только один раз. Если вы хотите, чтобы очень надежные таймеры вам придется либо получить блокировку Sake, либо пользователя AlteTimer.

  3. Да.

 

Answers to all your sub-questions

  1. Android sleeps when no wake-lock is active. It does not matter what processes and threads are running it will still sleep. That means if your thread or some other process out there has not activated a wake lock your thread will not execute and hence will not drain any battery. The thread will be made active only when some other process acquires a wakelock.

  2. Same is applicable to the Timer.schedule(). Say you write a Timer that executes every second but without any wake-lock, and say android goes to sleep for 10 seconds. When it wakes p on 11th second it will identify that your timer has expired 10 times it will simply discard the9 instances and execute it only once. If you want very reliable timers you will have to either obtain a wake lock or user AlarmTimer.

  3. Yes.

</div
 
 
0
 
vote

Что я узнаю на разных функциональных возможностях, связанных с rach-lock , Система Android никогда не спит, если она спит, вы не получите SMS, вызов IE Android не запустит только задачу уровня ОС, когда она продолжается спать.
Race-Lock - это механизм, где любое приложение может запросить систему, чтобы устройство осталось на него. Приложение может выполнять операцию на фоне, несмотря на то, что пользователь не перемещается, чтобы запустить это приложение.

для 1 & amp; 2 Акшар объяснил правильно. 3. Что касается любых операций в вашем приложении, в то время как система находится в состоянии сна (только задача уровня ОС. После завершения операций вы должны отпустить блокировку Wake, чтобы система мог перейти к управлению задачами уровня ОС.

 

What i learn from different functionality related to Wake-Lock , Android System will never sleeps, if it sleeps you will not get SMS , Call i.e Android will not run only OS level task when it goes on sleep.
Wake-lock is a mechanism where any application can request system to have the device stay on for him. Application can perform operation on background despite user haven`t move to launch that application.

For 1 & 2 Akshar has explained correctly. 3. As to perform any operations in your application while system is in sleep state(only OS level task are runnning) , you first have to request wake-lock from system and then only application can run its operations. After completing operations you should release the wake lock so that system can move to managing OS level tasks.

</div
 
 

Связанный проблема

0  Как мой банк обратная связь обратно на мой мобильный телефон?  ( How does my bank reverse connect back to my mobile phone ) 
Я бродил, как это работает программирование мудрым. Если я вошел в мой веб-сайт онлайн-банкинга на моем компьютере, так как я вхожу в систему, приложение на...

-1  Начать активность и не заканчивать деятельность  ( Start activity and dont finish activity ) 
У меня есть всплеск активности и свидетельствующая активность, в которой я открываю некоторые активиты: Резюме: SPLAH - & GT; Главная & GT; A или B или C и ...

37  Android получают путь к изображению от Drawnable в виде строки  ( Android get image path from drawable as string ) 
Есть ли способ, которым я могу получить путь к изображению от Drawable папки в Android в виде строки. Мне это нужно, потому что я реализую свой собственный пр...

2  Как перехватить центральную кнопку  ( How to intercept a center button press ) 
У меня есть приложение, в котором важно, чтобы я выполнял какой-код, когда пользователь нажимает центральную кнопку на устройстве Android. Я уже обрабатываю п...

0  Получить почту пользователя, используя FQL  ( Get user email using fql ) 
Я использую следующий FQL, чтобы получить дни рождения из Facebook (я знаю, что API TEH изменился) Однако я хочу продолжить с этим: <код> String fqlQuery = ...

0  ValueAnimator не работает, как это должно быть. Перезапуск от 0, а не с 1-го значения  ( Valueanimator does not work how it should restarts from 0 instead of from 1st v ) 
Это мой код: <код> public static void countTextViewTravelMode(final Integer value, final TextView myView, final CrudStateCallback back){ Integer begin ...

0  Android Studio Back Button  ( Android studio back button problems ) 
на данный момент. Я создал простое приложение для викторины на Android Studio. Все работает нормально, в том числе, когда я иду от первой фактической жизни. Я...

0  Класс libgdx не рисует текстуру  ( Libgdx class does not draw texture ) 
Я пытаюсь нарисовать игровой символ в моем классе "MaigaMestreen.java" из класса "Mavans.java", когда я касаюсь экрана моего телефона. К сожалению, моя прогр...

0  Как мне изменить стиль кнопки в Android?  ( How do i change the style of a button in android ) 
Я хочу изменить стиль кнопки в приложении Android. Вот картинка, которая имеет оба вида кнопок, то, что у меня есть сейчас, и тот, который я хочу переключитьс...

1  Обновление поле PDF штрих-кода в IOS и устройстве Android  ( Updating a pdf barcode field in ios and android device ) 
Я создал одну корпус Acrobat, используя радиообъекты, текстовое поле, кнопку, флажок и штрих-код в Adobe Acrobat Pro. После этого я открыл эту форму в Adobe...

0  Новое намерение не начнется внутри Onlongpress?  ( New intent wont start inside onlongpress ) 
Я создал класс TapSturedEtector для поверхностного представления. Я поймаю длинное сенсорное событие, и я хочу начать новую активность. Но это не работает. На...

18  Не может решить импорт LocalBroadCastManager на оператор Android.support.v4.content.localboadcastmanager;  ( Can not resolve import localbroadcastmanager on statement android support v4 con ) 
Я получил эту ошибку при импорте проекта Eclipse на Android Studio. Он показывает предложение добавить библиотеку <код> Gradle: com.android.support:support-co...

23  Ошибка пропуска тестового прогона: запуск приборов не удалось из-за «Java.lang.classnotfoundException»  ( Test run failed instrumentation run failed due to java lang classnotfoundexcep ) 
Это мой первый раз настроив проект теста на Android для проверки проекта Android. Я создал очень базовый тестовый случай, который я пытаюсь запустить, однак...

0  Замена ViewPager с фрагментом меню  ( Replacing viewpager with menuitem fragment ) 
У меня есть <код> Activity , в котором всего 4 <код> fragments есть. Из 4, 3 фрагменты интегрированы в виде вкладок с Viewpager , 4-й в меню в качестве и...

0  Автоматически заканчивать приложение / или автоматическое уничтожение приложения, поставляемое в Android?  ( Automatically finish an app or auto destroy app posible in android ) 
Два вопроса: 1) Я хочу добавить к моему приложению возможность автоматически выхода через несколько минут бездействия. Что я подразумеваю под автоматическим в...

Связанный проблема

0  Как мой банк обратная связь обратно на мой мобильный телефон? 
-1  Начать активность и не заканчивать деятельность 
37  Android получают путь к изображению от Drawnable в виде строки 
2  Как перехватить центральную кнопку 
0  Получить почту пользователя, используя FQL 
0  ValueAnimator не работает, как это должно быть. Перезапуск от 0, а не с 1-го значения 
0  Android Studio Back Button 
0  Класс libgdx не рисует текстуру 
0  Как мне изменить стиль кнопки в Android? 
1  Обновление поле PDF штрих-кода в IOS и устройстве Android 
0  Новое намерение не начнется внутри Onlongpress? 
18  Не может решить импорт LocalBroadCastManager на оператор Android.support.v4.content.localboadcastmanager; 
23  Ошибка пропуска тестового прогона: запуск приборов не удалось из-за «Java.lang.classnotfoundException» 
0  Замена ViewPager с фрагментом меню 
0  Автоматически заканчивать приложение / или автоматическое уничтожение приложения, поставляемое в Android?