【Android】2015.09.08 第一行代码 Day6 Count:8

-----------------------------------------------
第一行代码
Day6
第五章
Broadcast
-----------------------------------------------
Questions:
1. intent立flag到底是干嘛,它的default值到底是什么?
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
删掉会报错:
android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

2. 不设置就是Null? 我能明白这玩意儿是设置窗口类型,但是它的默认值到底是什么?
alertDialog.getWindow().setType(WindowManager.LayoutParams. TYPE_SYSTEM_ALERT);
删掉会报错:
java.lang.RuntimeException: Unable to start receiver com.smile.broadcastbestpractice.ForceOfflineReceiver: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application

Points:
1. Broadcast
把握好两个方面:
Send:
全局广播无序发: this. sendBroadcast(intent);
全局广播有序发(配合优先级):  this.sendOrderedBroadcast(intent,null);
本地广播:localBroadcastManager.sendBroadcast(intent);

Receiver:
两个参数:过滤器 —> IntentFilter.addAction() && 接收器 —> BroadcastReceiver
全局广播静态接收:(这样即使程序没有启动起来也可以实现接受,做出动作)
< receiver  android :name= ".MyBroadcastReceiver">
    < intent-filter  android :priority= "100">
        < action  android :name= "com.smile.broadcasttest.CC_CALL"/>
    </ intent-filter>
</receiver>
本地广播动态接收:(能本地发送,程序一定启动了)
LocalBroadcastRecevier localBroadcastRecevier =  new LocalBroadcastRecevier();
IntentFileter intentFilter new IntentFilter();
intentFilter.addAction( "android.net.conn.CONNECTIVITY_CHANGE");
localBroadcastManager.registerReceiver(localBroadcastRecevier, intentFilter);

2.静态方法里用的都是静态变量,所以静态变量请在定义时初始化,而不是在构造函数中初始化,因为使用静态方法时不会调用构造函数的哦。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值