Есть ли событие в компактной структуре, которое срабатывает при приостановке и возобновлении?

Или я должен pinvoke родной код?
Я не хочу статус власти... ну, я делаю, но я не хочу опрашивать его все время и предпочел бы, чтобы произошел пожар.

2 ответа

Решение

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

Вы можете подключиться к системе управления питанием для получения уведомлений, хотя имейте в виду, что у вас нет времени на фактическую реакцию, поэтому вполне вероятно, что ваш код на самом деле не сможет обработать событие "идет в спячку" до тех пор, пока не проснется снова.

Оба Эти переходы состояний отображаются в управляемых функциях класса OpenNETCF.WindowsCE.PowerManager в http://www.smartdeviceframework.com/.

Если вам абсолютно необходимо знать, когда устройство приостанавливается, лучшая альтернатива - запустить вашу программу в автоматическом режиме. Вместо того, чтобы приостановить ваше устройство перейдет в состояние автоматического управления. Это ваше предупреждение, что устройство хочет приостановить. Сделайте все, что вам нужно было сделать, прежде чем устройство приостановится, затем отпустите автоматический запрос (обратите внимание, что если другие программы запрашивают автоматический режим, то устройство может никогда не приостановиться!).

Для получения дополнительной информации о автоматическом режиме см. http://www.codeproject.com/KB/mobile/WiMoPower1.aspx

Пример получения уведомлений об изменении питания см. По http://www.codeproject.com/KB/mobile/WiMoQueue.aspx

Другие вопросы по тегам