生命周期只有十秒左右,如果在 onReceive() 内做超过十秒内的事情,就会报错 . 在广播中
广播类型及广播的收发
广播类型
普通广播 (Normal broadcasts)
发送一个广播,所以监听该广播的广播接收者都可以监听到改广播。
异步广播 , 当处理完之后的Intent ,依然存在,这时候registerReceiver(BroadcastReceiver, IntentFilter)还能收到他的值,直到你把它去掉 , 不能将处理结果传给下一个接收者 , 无法终止广播 .
有序广播 (Ordered broadcasts)
按照接收者的优先级顺序接收广播 , 优先级别在 intent-filter 中的 priority 中声明 ,-1000 到
1000 之间 , 值越大 , 优先级越高 . 可以终止广播意图的继续传播 . 接收者可以篡改内容 .
1:
IntentFilter filter = new IntentFilter();
filter.add(XXXX);
filter.add(YYYY);
filter.add(ZZZZ);
registerReceiver(BroadcastReceiver,filter )
2:
public void onDestroy(){
unregisterReceiver(BroadcastReceiver);
}
3:
onReceive(Action){
//xxx yyy,zzz
}
基本实现的一个简单流程 public void saveContent(File f,String content){ if(!f.isexist()){ f.createNewFile(); }FileOutputStream fos = new FileOutputStream(f);fos.write(content.getByte());}
1:允许外部应用调用,在AndroidManifest.xml中调用的地方使用 android:exported = “true”;
2:服务分为本地、远程(应用级、系统级)aidl步骤(aidl文件,接口文件,生成编译实现文件(生成到gen文件里面),在Androidmanifest.xml配置),客户端调用aidl服务;
Intent 起到一个媒介左右;action,data,category Type component,extras
App Widgets的开发使用(1:定义 AppWidgetProviderInfo;2:重载App Widget接口;3:定义App Widget布局)