Intereting Posts
Обнаружение отключения от точки доступа WiFi Crashlytics ошибка разработчика при создании проекта android-gradle Как поддерживать элементы управления dpad для RecyclerView Могу ли я использовать переменные в XML для Android? Как бороться с несогласованностью ширины между андроидами 4.0-4.3 и 4.4 на Кордове или Phonegap? Каков самый простой и надежный способ получить текущее местоположение пользователя на Android? Получить текст внутри кнопки Ошибка: (19, 0) Метод Gradle DSL не найден: 'android ()' Добавление элементов управления яркостью экрана в приложение для Android Android WebView всегда возвращает значение null для javascript getElementById на loadUrl ItemTouchHelper сделать перетаскиваемый элемент переместить нижний колонтитул фрагмента Избегайте фильтрации Android Маркета при дополнительном использовании местоположения Как мы можем обрабатывать разные типы ответов с помощью Retrofit 2? Android: показать / скрыть представление, используя анимацию Что означает оранжевый треугольник в целевом столбце окна Android Device Chooser?

Потребление резьбы и аккумулятора

Я работаю над приложением, которое проверяет статус телефона каждые 5 секунд. Я сделал это так:

Thread checking = new Thread() { public void run(){ while( <<some status>> ) { <<checkstatus and do something>> Thread.sleep(5000); } } } 

Это плохо для аккумулятора? Как я могу это сделать по-другому? Служба перестает работать через пару секунд.

Solutions Collecting From Web of "Потребление резьбы и аккумулятора"

Чтобы ответить на ваш вопрос, это зависит от того, что вы делаете внутри цикла while.

Если вы не используете и не просыпаете какие-либо «дорогие» компоненты (например, интернет, Bluetooth, другие датчики и экран), вы должны быть в порядке. По сути, это то, как ОС работает в фоновом режиме в любом случае и использует Thread – один из самых дешевых способов.

Кроме того, если ваша задача имеет интенсивность процессора, вы также разрядите батарею.

Ваш сервис должен работать нормально, если вы это сделаете правильно.

Другой способ – использовать обработчики, которые будут абстрагировать большую часть управления потоками для вас.

Thread.sleep () заставляет текущий поток приостанавливаться, что означает, что процессор будет доступен для других потоков или просто отключится. Также обратите внимание на контекстный переключатель сна, но вы находитесь на безопасной стороне с большим интервалом ожидания. Итак, вообще говоря, все зависит от вас.

Вы можете использовать, например, PowerTutor, чтобы убедиться, что ваше приложение правильно спроектировано и реализовано.