summaryrefslogtreecommitdiffstats
path: root/docs/html-intl/ru/training/monitoring-device-state/manifest-receivers.jd
diff options
context:
space:
mode:
Diffstat (limited to 'docs/html-intl/ru/training/monitoring-device-state/manifest-receivers.jd')
-rw-r--r--docs/html-intl/ru/training/monitoring-device-state/manifest-receivers.jd50
1 files changed, 50 insertions, 0 deletions
diff --git a/docs/html-intl/ru/training/monitoring-device-state/manifest-receivers.jd b/docs/html-intl/ru/training/monitoring-device-state/manifest-receivers.jd
new file mode 100644
index 0000000..724ee93
--- /dev/null
+++ b/docs/html-intl/ru/training/monitoring-device-state/manifest-receivers.jd
@@ -0,0 +1,50 @@
+page.title=Manipulating Broadcast Receivers On Demand
+parent.title=Optimizing Battery Life
+parent.link=index.html
+
+trainingnavtop=true
+
+previous.title=Determining and Monitoring the Connectivity Status
+previous.link=connectivity-monitoring.html
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>Содержание урока</h2>
+<ol>
+ <li><a href="#ToggleReceivers">Включение, отключение и каскадирование приемников изменения состояния для повышения эффективности</a></li>
+</ol>
+
+
+<h2>Дополнительные материалы</h2>
+<ul>
+ <li><a href="{@docRoot}guide/components/intents-filters.html">Намерения и фильтры намерений</a>
+</ul>
+
+</div>
+</div>
+
+<p>Самый простой способ отслеживать изменения состояния устройства&nbsp;– создать приемники {@link android.content.BroadcastReceiver} для каждого отслеживаемого состояния и зарегистрировать их в манифесте приложения. Затем в каждом из этих приемников можно переопределять график повторяющихся оповещений в зависимости от текущего состояния устройства.</p>
+
+<p>Этот способ имеет недостатки: приложение активирует устройство при каждом запуске любого из этих приемников, что далеко не всегда оправданно.</p>
+
+<p>Оптимальный вариант&nbsp;– включать и выключать приемники широковещательных намерений во время работы приложения. Это позволяет использовать приемники, объявленные в манифесте, как пассивные оповещения, которые инициируются системными событиями только в случае необходимости.</p>
+
+
+<h2 id="ToggleReceivers">Включение, отключение и каскадирование приемников изменения состояния для повышения эффективности </h2>
+
+<p>{@link android.content.pm.PackageManager} позволяет включать и выключать любые компоненты, определенные в манифесте, в том числе все приемники широковещательных намерений:</p>
+
+<pre>ComponentName receiver = new ComponentName(context, myReceiver.class);
+
+PackageManager pm = context.getPackageManager();
+
+pm.setComponentEnabledSetting(receiver,
+ PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
+ PackageManager.DONT_KILL_APP)</pre>
+
+<p>При разрыве соединения этот метод позволяет выключить все приемники, кроме приемника изменения состояния подключения. И наоборот, когда подключение уже установлено, отслеживать изменения его состояния не требуется. Достаточно проверить наличие подключения к Интернету непосредственно перед обновлением или изменением графика оповещений о регулярном обновлении.</p>
+
+<p>Точно так же можно отложить загрузку, для выполнения которой требуется более высокая пропускная способность. Просто включите приемник широковещательных намерений, который будет отслеживать изменения возможности подключения и инициировать загрузку только после подключения к сети Wi-Fi.</p>