BroadcastReceiver 静态注册

今天跟大家分享一个BroadcastReceiver 静态注册的一个简单小例子。

预备知识:
1.什么是广播?
答:广播接收器,也被称为全局事件,或系统事件。

2.广播的三要素:
答:
1) 广播(Broadcast) - 用于发送广播;
2) 广播接收器(BroadcastReceiver) - 用于接收广播;
3) 意图内容(Intent)-用于保存广播相关信息的媒介。

Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver是对发送出来的Broadcast进行过滤接受并响应的一类组件。

3.广播的生命周期
答:
1)、广播接收器仅在它执行这个方法时处于活跃状态。当onReceive()返回后,它即为失活状态。
2)、拥有一个活跃状态的广播接收器的进程被保护起来而不会被杀死,但仅拥有失活状态组件的进程则会在其它进程 需要它所占有的内存的时候随时被杀掉。
3)、如果响应一个广播信息需要很长的一段时间,一般会将其纳入一个衍生的线程中去完成,而不是在主线程内完成它,从而保证用户交互过程的流畅。

4.广播接收器的注册分类
答:
1)、静态注册
特点:当使用程序退出后,广播依然存在

<receiver android:name=“.XXXReceiver”>




2)、动态注册
特点:该广播仅在应用中有效,退出后不再接收广播。
registerReceiver():注册广播
unregisterReceiver():注销广播

静态广播接收器注册
步骤:
1:新建一个类,继承BroadcastReceiver
2:在清单配置文件中动态注册

 
 

布局文件:




MainActivity.class
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
/**
* Created by Victor on 2016/9/21 0021.
*/
public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}
public void onClick(View view)
{
    switch(view.getId())
    {
        case R.id.btn_static:
            Intent intent =  new Intent();
            intent.setAction("com.victor.happy");
            intent.putExtra("msg","BroadcastReceiver静态注册");
            //发送一条普通的广播
            sendBroadcast(intent);
            break;
        default:
            break;

    }
}

}

MyBroadcastReceiver.class

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

/**
* Created by Victor on 2016/9/21 0021.
*/
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context,intent.getStringExtra(“msg”),Toast.LENGTH_LONG).show();
}
}

AndroidManifest.xml文件





    
        
            
            
        
    

    
        
            
            
    


运行结果:

BroadcastReceiver 静态注册_第1张图片

你可能感兴趣的:(Android实例)