summaryrefslogtreecommitdiffstats
path: root/docs/html-intl/zh-cn/training/monitoring-device-state/connectivity-monitoring.jd
diff options
context:
space:
mode:
Diffstat (limited to 'docs/html-intl/zh-cn/training/monitoring-device-state/connectivity-monitoring.jd')
-rw-r--r--docs/html-intl/zh-cn/training/monitoring-device-state/connectivity-monitoring.jd70
1 files changed, 70 insertions, 0 deletions
diff --git a/docs/html-intl/zh-cn/training/monitoring-device-state/connectivity-monitoring.jd b/docs/html-intl/zh-cn/training/monitoring-device-state/connectivity-monitoring.jd
new file mode 100644
index 0000000..8313e08
--- /dev/null
+++ b/docs/html-intl/zh-cn/training/monitoring-device-state/connectivity-monitoring.jd
@@ -0,0 +1,70 @@
+page.title=确定和监控网络连接状态
+parent.title=优化电池使用时间
+parent.link=index.html
+
+trainingnavtop=true
+
+previous.title=确定和监控基座对接状态和类型
+previous.link=docking-monitoring.html
+next.title=根据需要操作广播接收器
+next.link=manifest-receivers.html
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>本教程将指导您</h2>
+<ol>
+ <li><a href="#DetermineConnection">确定是否已连接互联网</a></li>
+ <li><a href="#DetermineType">确定互联网连接的类型</a></li>
+ <li><a href="#MonitorChanges">监控连接情况的变化</a></li>
+</ol>
+
+
+<h2>您还应参阅</h2>
+<ul>
+ <li><a href="{@docRoot}guide/components/intents-filters.html">intent 和 intent 过滤器</a>
+</ul>
+
+</div>
+</div>
+
+<p>重复提醒和后台服务最常见的用途之一,就是为来自互联网资源的应用数据、缓存数据安排定期更新或执行长时间运行的下载任务。但是,如果您没有连接互联网,或因连接过慢而无法完成下载,那就根本没必要唤醒设备并安排更新了。</p>
+
+<p>您可以使用 {@link android.net.ConnectivityManager} 查看是否确实已连接互联网,如果已连接,您还可以了解当前的连接类型。</p>
+
+
+<h2 id="DetermineConnection">确定是否已连接互联网</h2>
+
+<p>如果设备未连接互联网,就没有必要根据互联网资源安排更新了。以下代码段说明如何使用 {@link android.net.ConnectivityManager} 查询有效网络并确定该网络是否已连接互联网。</p>
+
+<pre>ConnectivityManager cm =
+ (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
+
+NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
+boolean isConnected = activeNetwork.isConnectedOrConnecting();</pre>
+
+
+<h2 id="DetermineType">确定互联网连接的类型</h2>
+
+<p>您也可以确定当前可用的互联网连接的类型。</p>
+
+<p>通过移动数据、WiMAX、Wi-Fi 和以太网连接可提供设备连接。您可以查询有效网络的类型(具体如下所示),以便根据可用带宽调整刷新频率。</p>
+
+<pre>boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;</pre>
+
+<p>移动数据的费用往往比 Wi-Fi 高很多,因此在大多数情况下,如果您使用的是移动连接,就应降低应用更新频率。同样,在没有 Wi-Fi 连接的情况下,您就应暂停较大的下载任务。</p>
+
+<p>停用更新后,请务必侦听连接情况的变化,以便在建立互联网连接后恢复更新。</p>
+
+
+<h2 id="MonitorChanges">监控连接情况的变化</h2>
+
+<p>只要连接的具体情况发生变化,{@link android.net.ConnectivityManager} 就会广播 {@link android.net.ConnectivityManager#CONNECTIVITY_ACTION} ({@code "android.net.conn.CONNECTIVITY_CHANGE"}) 操作。您可以在清单中注册广播接收器,以便侦听这些变化并相应地恢复(或暂停)后台更新。</p>
+
+<pre>&lt;action android:name="android.net.conn.CONNECTIVITY_CHANGE"/></pre>
+
+<p>设备连接情况的变化可能会非常频繁,只要您在移动数据和 Wi-Fi 之间相互切换,系统就会触发此广播。因此比较合适的做法是,仅当之前暂停了更新或下载时才监控此广播,以便恢复更新或下载。通常,您只需在开始更新前检查互联网连接情况即可,如果未连接互联网,请暂停后续更新,直到连接恢复。</p>
+
+<p>此技巧需要切换您在清单中声明的广播接收器,具体说明请见下一教程。</p>