Я хочу сделать таймер на 10 мин. но проблема в том, что я не хочу, чтобы пользователь мог обрабатывать системное время или выключать устройство для обмана. есть ли способ работать с этим таймером, даже пользователь меняет время устройства или выключает устройство? благодарим за любую помощь.android timer работать в любом случае
ответ
Используя широковещательную рассылку ACTION_TIME_CHANGED
Intent, вы можете обнаружить, когда время устройства изменилось.
Вам необходимо добавить намерение трансляции к вашему манифесту, чтобы вызвать приемник, когда обнаружен этот тип намерения.
<receiver android:name=".TimeChangedReceiver">
<intent-filter>
<action android:name="android.intent.action.TIME_SET" />
</intent-filter>
</receiver>
Чтобы справиться с Broadcast использовать BroadcastReceiver
:
public class TimeChangedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//Logic here
//If you have multiple broadcast registered take action for each
}
}
телефон регулирует время периодически, так как внутреннее время не точным, но вы можете рассчитывать на имеющие не более, чем несколько секунд регулировка в час. Обычно это происходит, когда он повторно подключается к сети и совершает вызов NTP (именно так происходит обнаружение, когда вы изменили часовой пояс после полета для ex.)
Ваш вещательный приемник также обнаружит это изменение, но после прыжка секунды добавляются нечасто и, очевидно, небольшое количество, которое может иметь логика для фильтрации этих изменений из внесенных пользователем изменений.
Вы можете использовать свой собственный сервер времени, вместо того, чтобы использовать системное время клиент
Предполагаю, что я не хочу использовать сеть или интернет – amir
Если пользователь может изменить системное время они смогут получить вокруг таймера независимо. Чтобы обойти остановку системы, просто сохраните время запуска с помощью System.currentTimeMillis в файле, который дает вам время с момента и вычитает это значение из любого текущего времени.
- 1. Android Timer перестает работать
- 2. Flexpaper APIs не будет работать в любом случае
- 3. утверждают возвращаемого значения, но работать в любом случае
- 4. в любом случае, кроме AsyncTask?
- 5. EJB Timer работает часто в случае исключения
- 6. Android: В любом случае узнать, проверен ли «Неизвестные источники»?
- 7. Android: в любом случае время ожидания типа соединения HIPRI?
- 8. Ждать в цикле (в любом случае, в любом случае) в Swift?
- 9. jquery имеет в случае, если инструкция запуска в любом случае
- 10. Невозможно прочитать класс функтора в любом случае
- 11. Java Timer эквивалент в Android
- 12. В любом случае, код C# в Eclipse?
- 13. Форма отправляется в любом случае в Firefox
- 14. в любом случае писать dll в linux?
- 15. Сценарий, который может работать в любом каталоге
- 16. В любом случае я могу отправить SMS?
- 17. Безопасное литье, но EXC_BAD_ACCESS в любом случае
- 18. Facebook устарел автономный доступ, в любом случае?
- 19. Выполняется ли IF в любом случае?
- 20. В любом случае, чтобы расширить раскадровку.Дети?
- 21. javascript redirect не работает в любом случае
- 22. В любом случае, чтобы «сбросить» стили?
- 23. backbonejs model.set, событие триггера в любом случае
- 24. В любом случае, чтобы сократить этот код?
- 25. Показать маршрут на ошибки в любом случае
- 26. В любом случае, чтобы ускорить работу mapdb?
- 27. Bluebird Promise становится решен в любом случае
- 28. Кэширования выполняет DB запрос в любом случае
- 29. Обнаруживание изменения значения в любом случае, jQuery
- 30. Как этот замок полезен в любом случае?
Вы имеете в виду отслеживать обратный отсчет, когда устройство выключено? Я не думаю, что это возможно, но вы можете сохранить время при завершении работы, а затем возобновить работу, когда он отключился при включении питания. – DigitalNinja