zoukankan      html  css  js  c++  java
  • android中broadcastreceiver的用法-manifest中注册。

    package com.jinhoward.broadcast.activity;
    
    import com.jinhoward.broadcast.activity.R;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    
    public class MainActivity extends Activity
    {
    	protected static final String MYACTION = "com.jinhoward.broadcast.ACTION";
    	private Button btnBroadcast;
    	@Override
    	public void onCreate(Bundle savedInstanceState)
    	{
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    		btnBroadcast=(Button)findViewById(R.id.btnBroadcast);
    		
    		btnBroadcast.setOnClickListener(new OnClickListener()
    		{
    			@Override
    			public void onClick(View v)
    			{
    				Intent intent=new Intent().setAction(MYACTION);
    				Log.i("MyReceiver", "按钮被点击");
    				sendBroadcast(intent);
    			}
    		});
    	}
    }


    receiver类:

    package com.jinhoward.broadcast.receiver;
    
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.util.Log;
    
    /**
     * @author  jinhoward
     * @blog    http://blog.csdn.net/jinhwoard
     */
    public class MyReceiver extends BroadcastReceiver
    {
    
    	private static final String TAG = "MyReceiver";
    
    	
    	public MyReceiver()
    	{
    		Log.i(TAG, "MyReceiver的构造函数执行");
    	}
    
    
    	@Override
    	public void onReceive(Context context, Intent intent)
    	{
    		Log.i(TAG, "接受到广播:"+intent.getAction());
    	}
    
    }
    


    manifest文件:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.jinhoward.broadcast.activity"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk android:minSdkVersion="8" />
    
        <application
            android:icon="@drawable/icon"
            android:label="@string/app_name" >
            <activity
                android:name="com.jinhoward.broadcast.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>
    
            <receiver android:name="com.jinhoward.broadcast.receiver.MyReceiver" >
                <intent-filter>
                    <action android:name="android.provider.Telephony.SMS_RECEIVED" />
                </intent-filter>
                <intent-filter>
                    <action android:name="com.jinhoward.broadcast.ACTION" />
                </intent-filter>
            </receiver>
        </application>
    
        <uses-permission android:name="android.permission.RECEIVE_SMS" />
    
    </manifest>


    学习到知识:

    1、非系统类的广播需要自己定义action并且自己发送广播。

    2、系统自带的广播不需要定义action,也不需要发送广播,只需要注册相应的系统广播事件,进行处理即可。

    3、broadcastreceiver的生命周期

    A BroadcastReceiver object is only valid for the duration of the call to onReceive(Context, Intent). Once your code returns from this function, the system considers the object to be finished and no longer active.

    This has important repercussions to what you can do in an onReceive(Context, Intent) implementation: anything that requires asynchronous operation is not available, because you will need to return from the function to handle the asynchronous operation, but at that point the BroadcastReceiver is no longer active and thus the system is free to kill its process before the asynchronous operation completes.





  • 相关阅读:
    使用jQuery淡入淡出HTML文本效果
    php一个诡异而简单的错误
    Android Tasker应用之自动查询并显示话费流量套餐信息
    ListView在应用开发中较为常用的做法
    网址收藏(网页制作源码下载网址、后台源码下载网址、域名注册网址)
    Flex4事件的监听与发布
    收拾心情,安安静静的学习
    ASP.NET development sever 在Windows server 2008/Vista显示页面无法找到 [转帖]
    花点时间搞清top、postop、scrolltop、scrollHeight、offsetHeight[转帖]
    HTTP 错误 401.2 Unauthorized 由于身份验证头无效,您无权查看此页。 IIS7.0解决办法
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3236863.html
Copyright © 2011-2022 走看看