十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
Activity通过绑定的方式调用Service的方法的步骤:
1、在Service里面创建一个类MyBinder继承Binder
2、在MyBinder这个类里面创建一个方法去调用Service里面的方法。
3、在onBinder这个方法里面,创建一个MyBInder类型的对象,返回回去。
4、在Activity中的ServiceConnection这个接口的onServiceConneted这个方法中得到IBinde对象,
把IBinder对象转换成MyBinder类型的对象。
注意:onServiceConneted能够被执行的条件:service的onBind()方法里面返回一个非空的对象。
四大组件之三:
BroadReceiver广播接收者
创建的要素:
1、继承BroadcastReceiver
2、重写onReceive()
3、清单文件里面注册
接收短信广播
过滤条件:
在清单文件里面:
权限:
广播接收者:
广播的特性:单向、群发。
场景:1)系统接收某个事件,会群发广播消息
2)应用自己发广播。:sendBroadcast(intent);
代码里面注册广播接收者:
1、MyReceiverreceiver=newMyReceiver();
2、在onstart()方法里面注册:
IntentFilterfilter=newIntentFilter();
filter.addAction("org.yinan");//设置过滤条件
registerReceiver(receiver,filter);//注册广播
3、在onStop()注销广播:
unregisterReceiver(receiver);//参数里面的receiver对象必须跟注册的时候同一对象。
两种注册广播的区别:
相同:项目里面必须要创建BroadcastReceiver。
不同点:1)清单文件里面:设置
特性:就算进程不存在的时候,只要广播的过滤条件匹配就会收到广播
2)在代码里面:获取广播接收者对象。然后设置过滤条件。
特性:注册时机比较灵活,我们可以自己控制。
intent意图
显式意图:明确指定类名;意图对象.setClass(xx.this,xxx.class);
隐式意图:没有明确指定类名,指定了过滤条件意图对象.setACtion("xxxxx.xxxx.xxx");
两者之间的区别:
启动目标:显式1个(直接打开)必须在一个应用之内
隐式一个或多个(多个的话就列表打开)跨应用
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。