summaryrefslogtreecommitdiffstats
path: root/docs/html-intl/ja/training/monitoring-device-state/manifest-receivers.jd
diff options
context:
space:
mode:
Diffstat (limited to 'docs/html-intl/ja/training/monitoring-device-state/manifest-receivers.jd')
-rw-r--r--docs/html-intl/ja/training/monitoring-device-state/manifest-receivers.jd50
1 files changed, 50 insertions, 0 deletions
diff --git a/docs/html-intl/ja/training/monitoring-device-state/manifest-receivers.jd b/docs/html-intl/ja/training/monitoring-device-state/manifest-receivers.jd
new file mode 100644
index 0000000..7635d9f
--- /dev/null
+++ b/docs/html-intl/ja/training/monitoring-device-state/manifest-receivers.jd
@@ -0,0 +1,50 @@
+page.title=オンデマンドでのブロードキャスト レシーバ操作
+parent.title=電池消費量の最適化
+parent.link=index.html
+
+trainingnavtop=true
+
+previous.title=接続状態の特定と監視
+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>端末の状態変化を監視する最も単純な方法は、監視対象とする状態ごとに {@link android.content.BroadcastReceiver} を作成し、それぞれをアプリのマニフェスト内で登録するというものです。これらの各レシーバ内で、端末の現在の状態に基づいて反復アラームのスケジュールを再設定します。</p>
+
+<p>この方法のデメリットは、これらのレシーバのいずれかがトリガされるたびに端末がスリープから復帰することですが、このことは必要以上に頻繁に発生する可能性があります。</p>
+
+<p>これよりも良い方法は、実行時にブロードキャスト レシーバをオンまたはオフにするというものです。このようにすれば、マニフェスト内で宣言したレシーバを受動的アラームとして使用できます。つまり、このアラームは、必要なときにだけシステム イベントによって呼び出されます。</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>