Activity生命周期
一个对象从创建到销毁中间经历的状态
创建--->运行 onCreate onStart onResume
可见可操作
运行--->销毁 onPause onstop ondestory
运行--->停止(不可见 不可操作)
onPause onstop
停止--->恢复
onReStart onStart onResume
运行--->暂停 (可见 不可操作) onPause
暂停--->恢复 onResume
当Activity处于暂停或是停止状态的时候,更高优先级的应用需要内存时
activity可能会被终止
站在用户的角度思考问题,与客户深入沟通,找到泰州网站设计与泰州网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、成都网站设计、企业官网、英文网站、手机端网站、网站推广、域名注册、网络空间、企业邮箱。业务覆盖泰州地区。
Service服务 运行在后台,没有界面
创建Service要素
1、继承service
2、清单文件中进行配置
android:name="com.example.ex_service.MyService"
包名.类名
启动服务:
调用startService(service );
注意:
第一次启动服务的时候,会调用onCreate onStartCommand
当服务没有被结束之前,多次点击只会调用onStartCommand方法
关闭服务:
调用stopService(service );
绑定服务:
调用bindService(service, conn, Context.BIND_AUTO_CREATE);
参数:
第一个:Intent对象
第二个:ServiceConnection对象(需要声明称成员变量)
第三个:Context.BIND_AUTO_CREATE
当我们绑定服务的时候,如果服务不存在,会自动创建
调用 oncreate onBind
解除绑定:
调用unbindService(conn);
调用 onUnBind onDestory
通过绑定去调用service中的方法步骤:
1、去声明一个普通类Mybinder,继承Binder
2、在类Mybinder类里面,调用service服务里的方法
3、创建一个Mybinder类型的对象
4、在OnBind()方法中,去返回Mybinder对象
5、在activity里的onServiceConnected中,去获取IBinder类型的对象
然后只需把它强转称Mybinder类型的对象就可以了
这样就能去调用Mybinder类型的对象里面的方法了
注意:
onBind()返回一个非空的IBinder对象时,
onServiceConnected这个方法才会被调用
BroadCastReciver广播接收者
特性:单向 群发
广播的创建的要素:
1、创建的类继承BroadcastReceiver
2、重写onReceive()方法
3、在清单文件进行配置
android:name="com.example.ex_broadcastreciver.MyReceiver"
包名.类名
场景:
1、接收外部的广播
收短信
权限
在清单中进行配置
2、创建应用 自己发广播
Intent intent = new Intent();
//设置广播的过滤条件
intent.setAction("www.sss.com");
//发送广播
sendBroadcast(intent );
跨进程通讯
在代码中去设置广播
1) MyReceiver receiver = new MyReceiver();
2) 在onstart()方法中注册:
IntentFilter filter = new IntentFilter();
filter.addAction("www.sss.com");
3) 注册广播接收者
registerReceiver(receiver , filter );
4) 在onstop()注销广播
super.onStop();
unregisterReceiver(receiver);
两种广播的区别:
xml :只要条件匹配,就会触发(不管应用是否开启)
code:灵活控制