BroadcastReceiver を使用して、ネットワーク接続の変更をリッスンしています。AndroidManifest.xml ファイルを使用してレシーバーを登録します。エミュレータの状態が「切断」から「接続」に変わると、BroadcastReceiver の OnReceiver() 関数が呼び出されます。しかし、ネットワークのステータスが「接続済み」から「切断済み」に変わると、アプリケーションはエラー、ログ、または例外なしで終了します。「残念ながらアプリは動作を停止しました」というメッセージだけです。このメッセージはエミュレーターに表示され、LogCat ウィンドウに例外やエラーは表示されません。
受信者は、xml ファイルに次のように登録されます。
<receiver android:exported="true" android:name="com.jumbybay.common.ConnectivityBroadcastReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE">
</action>
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
LogCat に最後に表示されるのは次のとおりです。
09-14 00:09:11.691: D/Tethering(149): MasterInitialState.processMessage what=3
09-14 00:09:47.991: D/ConnectivityService(149): ConnectivityChange for mobile: DISCONNECTED/DISCONNECTED
09-14 00:09:47.991: D/ConnectivityService(149): Attempting to switch to wifi
09-14 00:09:48.141: D/ConnectivityService(149): resetConnections(eth0, 3)
: E/(): Device disconnected
どんな助けでも大歓迎です。