一、定义ReceiveService类
当接收到的网络状态发生改变时通知Activity,需要一个Service,并且绑定该到Activity。
import
二、接下来在Activity中,绑定服务
注意:在TabActivity的子Activity中使用service时,bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE),需要改为:
this.getApplicationContext().bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE) ,才可正常使用。
- public class MainActivity extends Activity {
- ReceiveMsgService receiveMsgService;
- private boolean conncetState = true; // 记录当前连接状态
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.page_main);
- bind();
- }
- private void bind() {
- Intent intent = new Intent(MainActivity.this, ReceiveMsgService.class);
- bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE);
- }
- private ServiceConnection serviceConnection = new ServiceConnection() {
- @Override
- public void onServiceDisconnected(ComponentName name) {
- }
- @Override
- public void onServiceConnected(ComponentName name, IBinder service) {
- receiveMsgService = ((ReceiveMsgService.MyBinder) service)
- .getService();
- receiveMsgService.setOnGetConnectState(new GetConnectState() { // 添加接口实例获取连接状态
- @Override
- public void GetState(boolean isConnected) {
- if (conncetState != isConnected) { // 如果当前连接状态与广播服务返回的状态不同才进行通知显示
- conncetState = isConnected;
- if (conncetState) {// 已连接
- handler.sendEmptyMessage(1);
- } else {// 未连接
- handler.sendEmptyMessage(2);
- }
- }
- }
- });
- }
- };
- private void unbind() {
- if (receiveMsgService != null ) {
- unbindService(serviceConnection);
- }
- }
- Handler handler = new Handler() {
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case 1:// 已连接
- Toast.makeText(MainActivity.this, "网络已经连接" ,Toast.LENGTH_LONG).show();
- break;
- case 2:// 未连接
- Toast.makeText(MainActivity.this, "网络未连接" ,Toast.LENGTH_LONG).show();
- break;
- default:
- break;
- }
- ;
- };
- };
- @Override
- protected void onDestroy()
- {
- // TODO Auto-generated method stub
- super.onDestroy();
- unbind();
- }
- }
三、在Manifest中注册Serevice和相关权限
<usespermission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> //注册service <service android:enabled="true" android:name=".ReceiveMsgService" />