Android广播的静态与动态注册
来源:互联网 发布:剑三脸型数据怎么导入 编辑:程序博客网 时间:2024/05/20 18:50
静态广播:不用程序启动就可以接收,可用作开机自启动(设备开机时会发送广播,下面列出几项广播的ACTION),当然也能自己设定action的值。
Intent.ACTION_BOOT_COMPLETED //系统启动完成
Intent.ACTION_MEDIA_MOUNTED //SD卡挂载
Intent.ACTION_MEDIA_UNMOUNTED //SD卡卸载
Intent.ACTION_USER_PRESENT//解除锁屏
ConnectivityManager.CONNECTIVITY_ACTION//网络状态变化
动态广播:在代码中注册,程序适应系统变化做操作,动态广播只有在程序运行状态下才能接收到。
Intent.ACTION_SCREEN_ON //屏幕亮时发出的广播
Intent.ACTION_SCREEN_OFF //屏幕灭时发出的广播
Intent.ACTION_TIME_TICK //时间变化 每分钟一次发出的广播
当然还有很多状态就不一一列举了,用到时自行搜索便是,那就贴一些代码吧。
广播接收器类,用来接收广播。
package com.example.broadcastrecdemo_v1;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.widget.Toast;public class MyBroadcastRec extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals("com.xwk.brcr")) { Toast.makeText(context, intent.getStringExtra("jt"), Toast.LENGTH_SHORT).show(); } else if (action.equals("com.xwk.dt")) { Toast.makeText(context, intent.getStringExtra("dt"), Toast.LENGTH_SHORT).show(); } }}
界面。
<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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> <Button android:id="@+id/bnj" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/tv" android:text="静态" /> <Button android:id="@+id/bnd" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/bnj" android:text="动态" /></RelativeLayout>
Activityi类。
package com.example.broadcastrecdemo_v1;import android.app.Activity;import android.content.Intent;import android.content.IntentFilter;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity implements OnClickListener{ private Button bnj, bnd; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bnj = (Button) findViewById(R.id.bnj); bnd = (Button) findViewById(R.id.bnd); bnj.setOnClickListener(this); bnd.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.bnj: Intent it1 = new Intent(); it1.setAction("com.xwk.brcr"); it1.putExtra("jt", "这里是静态注册!"); sendBroadcast(it1); break; case R.id.bnd: Intent it2 = new Intent(); it2.setAction("com.xwk.dt"); it2.putExtra("dt", "这里是动态注册!"); sendBroadcast(it2); break; default: break; } } @Override protected void onStart() { super.onStart(); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("com.xwk.dt"); registerReceiver(new MyBroadcastRec(), intentFilter); }}
静态广播需在AndroidManifest.xml中注册。
<receiver android:name=".MyBroadcastRec" > <intent-filter> <action android:name="com.xwk.brcr" /> </intent-filter> </receiver>
来看下运行结果。
1 0
- Android广播的静态与动态注册
- Android静态注册广播和动态注册广播的区别
- Android静态/动态注册广播的区别
- Android中的静态系统广播与动态系统广播及其相应的注册与接收
- Android广播之注册广播(包括静态广播和动态广播的注册)源码分析
- Android的广播Receiver动态注册和静态注册
- Android静态注册和动态注册广播的区别
- #android# 广播静态注册 动态注册
- BroadcastReceiver静态注册广播与动态注册广播接收器
- android 注册静态广播接收器VS注册动态广播接收器
- 静态/动态注册广播的区别,静态动态广播区别
- android中广播的使用(动态和静态注册)
- android 静态、动态注册广播浅析
- Android Studio:Broadcast 静态&动态广播注册
- android 动态广播与静态广播区别
- 静态/动态注册广播的区别
- 静态/动态注册广播的区别
- 静态/动态注册广播的区别
- 《算法竞赛入门经典2ndEdition 》例题5-4 反片语(Ananagrams, Uva156)
- 整数划分
- jQuery使用$.ajaxFileUpload上传
- hdu 1671 Phone List 字典树
- 非递归DFS
- Android广播的静态与动态注册
- oracle11g dataguard failover重建后归档日志没有被应用被NO的问题
- 20151229 053 30-60
- tinyos学习笔记9--TestRPL(UDP)例程分析
- IOS开发系列----Objective-c的内存管理
- java 序列化相关
- Java必要基础理解
- Android QQ,微信,新浪微博登录笔记
- Java中JDBC连接数据库Oracle