`

入门android广播简单例子

 
阅读更多

效果图如下:

点击检查网络按钮,提醒网络是否连接

 AndroidManifest.xml

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.lesson"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="14" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".activity.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
           
        </activity>
        <service 
            android:name="com.lesson.service.MyService"
            ></service>
    </application>

</manifest>

 activity_main.xml:

 

 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="18dp"
        android:text="检查网络" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button1"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="195dp"
         />

</RelativeLayout>

 MainActivity.java

 

 

package com.lesson.activity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

import com.lesson.R;
import com.lesson.service.MyService;

public class MainActivity extends Activity {

	private Button button;

	private ImageView imageView;// 要加载的图片

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		button = (Button) findViewById(R.id.button1);
		imageView = (ImageView) findViewById(R.id.imageView1);
		
		button.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
			//启动service来处理广播任务
				Intent intent=new Intent(MainActivity.this,MyService.class);
				startService(intent);
				
			}
		});
		
		
	}
	

	
	
}

 MyService.java

package com.lesson.service;

import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;



public 	class MyService extends Service{
	BroadcastReceiver networkBroadcast=null;  
	@Override
	public IBinder onBind(Intent intent) {
		
		return null;
	}

	@Override
	public void onStart(Intent intent, int startId) {
		
		super.onStart(intent, startId);
		IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);  
		networkBroadcast = new BroadcastReceiver() {

			public void onReceive(Context context, Intent intent) {
				Log.i("tga", "network state changed.");
				if (!isNetworkAvailable(context)) {
					Toast.makeText(context, "network disconnected!", 0).show();
					Log.i("tga", "network state wrong.");
				} else {
					Toast.makeText(context, "network connected!", 0).show();
					Log.i("tga", "network state ok.");
				}

			}

			/**
			 * 网络是否可用
			 * 
			 * @param context
			 * @return
			 */
			public boolean isNetworkAvailable(Context context) {
				ConnectivityManager mgr = (ConnectivityManager) context
						.getSystemService(Context.CONNECTIVITY_SERVICE);
				NetworkInfo[] info = mgr.getAllNetworkInfo();
				if (info != null) {
					for (int i = 0; i < info.length; i++) {
						if (info[i].getState() == NetworkInfo.State.CONNECTED) {
							return true;
						}
					}
				}
				return false;
			}
		};
		          
		registerReceiver(networkBroadcast, filter);  
	}

	@Override
	public void onCreate() {
		
		super.onCreate();
		//动态注册广播接收者
		
        
	
	}

	@Override
	public void onDestroy() {
		
		super.onDestroy();
		unregisterReceiver(networkBroadcast); 
	}
	
}


 注意点:

 

  • 大小: 133.3 KB
分享到:
评论

相关推荐

    android开发入门与实战(下)

    3.2.4 先来热热身——AndroidSDK例子解析 3.2.5 SDK提供的工具介绍 3.3 Android典型包分析 3.3.1 开发的基石——AndroidAPI核心开发包介绍 3.3.2 拓展开发外延——Android可选API介绍 3.4 本章小结 第4章 赚钱的...

    android开发入门与实战(上)

    3.2.4 先来热热身——AndroidSDK例子解析 3.2.5 SDK提供的工具介绍 3.3 Android典型包分析 3.3.1 开发的基石——AndroidAPI核心开发包介绍 3.3.2 拓展开发外延——Android可选API介绍 3.4 本章小结 第4章 赚钱的...

    《Google Android开发入门与实战》.pdf

    3.2.4 先来热热身——android sdk例子解析 28 3.2.5 sdk提供的工具介绍 31 3.3 android典型包分析 33 3.3.1 开发的基石——android api核心开发包介绍 33 3.3.2 拓展开发外延——android可选api介绍 ...

    《Google Android开发入门与实战》

    第7章 良好的学习开端——Android基本组件介绍之Android应用的灵魂——Intent和Activity介绍与实例 第7章 良好的学习开端——Android基本组件介绍之用好列表,做好程序——列表(ListView)介绍与实例 第7章 良好的...

    Google.Android开发入门与实战

     《Android开发入门与实战》内容上涵盖了用Android开发的大部分场景,从Android基础介绍、环境搭建、SDK介绍、Market使用,到应用剖析、组件介绍、实例演示等方面。从技术实现上,讲解了5个Android平台下的完整综合...

    Android入门.doc

    1. Android 简介 2. Android 开发环境的搭建 JDK 的安装(本文基于 JDK6) Android SDK 的安装 Eclipse 集成开发环境 ...3. 第一个 Android 应用程序...导入 android 的众多实例程序到 Eclipse 开发环境并部署、运行

    Google Android开发入门实战 pdf 和 实例代码.part3

    讲解了Android开发的第一个实例,从这里开始,带领读者进入Android编程的世界。通过本章的学习,读者了解了Android开发是怎么个流程。 第6章 磨刀不误砍柴工—Android应用程序结构介绍。介绍了Android程序的组成...

    Google Android开发入门实战 pdf 和 实例代码.part2

    讲解了Android开发的第一个实例,从这里开始,带领读者进入Android编程的世界。通过本章的学习,读者了解了Android开发是怎么个流程。 第6章 磨刀不误砍柴工—Android应用程序结构介绍。介绍了Android程序的组成...

    Google Android开发入门实战 pdf 和 实例代码.part1

    讲解了Android开发的第一个实例,从这里开始,带领读者进入Android编程的世界。通过本章的学习,读者了解了Android开发是怎么个流程。 第6章 磨刀不误砍柴工—Android应用程序结构介绍。介绍了Android程序的组成...

    android开发入门教程

    9.2.1 实现Android中的广播事件 9.2.2 BroadCastReceiver介绍 9.3 应用实例详解 9.3.1 程序操作演示 9.3.2 实例编程实现 9.4 本章小结 第10章 一切为用户服务——Service应用实例 10.1 认识Service 10.2 使用...

    android通知入门小例子

    通知(Notification)是 Android 系统中比较有特色的一个功能,当某个应用程序希望向 用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。发出一 条通知后,手机最上方的状态栏中会显示一...

    Google Android开发入门与实战的代码

    3.2.4 先来热热身——Android SDK例子解析 28 3.2.5 SDK提供的工具介绍 31 3.3 Android典型包分析 33 3.3.1 开发的基石——Android API核心开发包介绍 33 3.3.2 拓展开发外延——Android可选API介绍 ...

    Android4.4基于BLE实现远程点灯

    该资源提供了Android源代码+程序结构说明文档。该资源对在Android4.4下与BLE...个人认为对于有一定Android设计基础的程序员们,该资源是学习蓝牙4开发的入门好资源。通过实例的延时,让我们更加了解其中的一些概念。

    新版Android开发教程.rar

    Android Android Android Android 开发入门 System System System System Requirements Requirements Requirements Requirements The sections below describe the system and software requirements for developing...

    Google Android SDK开发范例大全(第3版) 1/5

    全书共分11章,主要以范例集的方式来讲述Android的知识点,详细介绍了开发Android的人机交互界面、Android常用的开发控件、Android手机收发短信等通信服务、开发Android手机的自动服务功能和娱乐多媒体功能以及整合...

    广播与服务

    Android的广播与服务的讲解与实例的应用,让你更快的入门

    Google Android SDK开发范例大全(第3版) 4/5

    全书共分11章,主要以范例集的方式来讲述Android的知识点,详细介绍了开发Android的人机交互界面、Android常用的开发控件、Android手机收发短信等通信服务、开发Android手机的自动服务功能和娱乐多媒体功能以及整合...

Global site tag (gtag.js) - Google Analytics