第七天 Android学习总结(广播接收者)

来源:互联网 发布:java web license源码 编辑:程序博客网 时间:2024/05/17 06:08

一.广播接受者BroadcasReceiver的使用

Android系统内部相当于一个电台,里面定义了很多的广播事件(频道),如外拨电话,短信到来,sd卡状态,电池电量变化等.

系统自带广播:

我们要接收到广播信息,需要:

1.创建一个继承BroadcastReceiver的广播类(专门用来接收广播的组件),

2.配置AndroidManifest.xml文件,主要是action★★

3.权限问题,

如监听拨打电话,需要设置权限android.permission.PROCESSOUTGOINGCALLS 允许监听拨打电话,修改电话的权限....这个没加很难找,信息得在全部信息那里找


大多数广播注册不需要data属性(scheme约束).sdcard(file)和包(package)的安装需要

当action被触发时,程序会执行广播类中的onReceiver方法,进行处理


自定义广播:

首先要有发送源头,

Intent intent = new Intent();

intent.setAction("pers.wzs.broadcast.xxxx");

intent.putExtras("info","叮叮叮当扣扣响起会是谁呢");

sendBroadcast(intent);无序广播         

sendOrderedBroadcast(intent, null,null, null, 1, "初始数据", "额外数据");  有序广播

初始数据在onreceiver方法中使用getResultData();获取.   

额外数据也就是putextras数据使用intent.getStringExtras("key");获取

第三个参数设置一个广播接受者,作为最后一个广播,不需要配置

接收广播    

跟接收系统广播差不多,建一个类继承广播类,注册,设置action.

如果是有序广播的话,在intent-filter中添加一个属性 android:priority="100",优先级,越大越优先接收广播 可以使用abortbroadcast();终止广播


频率高的广播事件,在清单文件注册是无效的,如锁屏开屏, 应该使用动态注册.

在activity中动态注册广播时,需要在activity的ondestroy中取消注册

实例化出广播接收者对象(继承广播的那个类)

IntentFilter filter = new IntentFilter();

filter.addAction("actionxxxxx");

this.registerReceiver(xxxReceiver对象,filter);//注册广播

在service中动态注册广播......待补充



注意事项:广播中不能直接开启activity,需要为intent对象设置一个flag,如intent.setFlag(I(Intent.flag_new_task);,才能启动activity.(相当于为activity提供一个任务栈)


二.样式和主题

style and theme

一般styles.xml文件中添加,例子如下:

    <style name="button_style">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textSize">25sp</item>
    </style>

引用时:

style="@style/button_style"

三.Android国际化 i18N

values-en 英文

values-zh 中文

values 默认,其他找不到就找这个 一般只需要把string.xml在其他values-xx也各自配置一份不同语言的即可

四.对话框dialog

1.普通对话框

2.单选对话框

3.多选对话框

4.进度条对话框

两种上下文 

this and MainActivity.this 内部类需要用第二种

getApplication(); 对话框new Bulider(context)时不能传这个..

五.Android动画

1.属性动画property animation

2.补间动画view(tweened) animation

3.帧动画drawable(frame) animation

0 0
原创粉丝点击