四大组件之broadcastReceiver

来源:互联网 发布:苹果远程桌面连接软件 编辑:程序博客网 时间:2024/06/16 21:50

1:不同版本广播的特点

[1]在4.0要求 第一次安装应用的时候必须有界面 这样广播接收者才能生效

[2]在设置页面上有一个强行停止的按钮 如果用户点击了 强行停止按钮后广播接收者也不生效

[3]2.3的手机上没有这样的安全设计

2:不能直接在广播接收者中开启activity

[1]定义广播接收者

[2]在清单文件里面注册BOOT_COMPLETED

<action android:name="android.intent.action.BOOT_COMPLETED"

[3]记得加上权限

3:getbroadcast()代表无序广播,接收数据可以用intent.getstringextra()... getOrderBroadcast()代表有序广播 接收数据可以用getResultData()

4:发送有序广播 

sendOrderedBroadcast(Intent intent, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, StringinitialData, Bundle initialExtras)
intent 意图 receiverPermisson 接收的权限? resultReceiver最终的recevier  scheduler是handler

initialCode初始码 initiaData初始化数据

5:特殊广播接收者

操作特别频繁的广播事件比如锁屏,这种广播在清单文件里面注册无效

[1]动态注册 通过代码方式

[2]在清单文件通过recevier tag节点静态发布

lr = new LockedReceiver();IntentFilter inte = new IntentFilter();inte.addAction("android.intent.action.SCREEN_ON");inte.addAction("android.intent.action.SCREEN_OFF");registerReceiver(lr, inte);

6:样式和主题

样式作用在控件上

主题作用在activity上

7:国际化

在res下创建不同国家语言环境集目录 目录是固定写法values_en...不同国家的标志可在ie上查看

8:两种上下文的区别

[1]this 最终继承context   子类  小的activity

[2]getap......()返回context对象 父类  大的activity 用他会出现找不到activity的情况

[3]对话框只能用this

9:多选对话框代码

public void click_2(View v) {AlertDialog.Builder bd = new Builder(this);bd.setTitle("worning");final String[] items = { "a", "b", "c" };final boolean[] checkedItems = { true, false, false };bd.setMultiChoiceItems(items, checkedItems,new OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which,boolean isChecked) {// TODO Auto-generated method stub}});bd.setPositiveButton("ok", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubStringBuffer sb = new StringBuffer();for (int i = 0; i < checkedItems.length; i++) {if (checkedItems[i]) {sb.append(items[i]);}}Toast.makeText(getApplicationContext(), sb.toString(), 0).show();dialog.dismiss();}});bd.show();}
10:动画

ImageView iv = (ImageView) findViewById(R.id.iv);iv.setBackgroundResource(R.drawable.my_anim);AnimationDrawable ani = (AnimationDrawable) iv.getBackground();ani.start();

11:开机启动广播

在清单文件中这样配制

<receiver android:name="com.example.demo0801_phonemonitor.FirstReceiver">            <intent-filter >                <action android:name="android.intent.action.BOOT_COMPLETED"/>            </intent-filter>        </receiver>

原创粉丝点击