Service的详解
来源:互联网 发布:vivo刷机软件 编辑:程序博客网 时间:2024/06/15 16:09
服务
- Service
- 运行于后台的一个组件,用来运行适合运行在后台的代码,服务是没有前台界面,可以视为没有界面的activity
进程优先级
- 前台进程:拥有一个正在与用户交互的Activity(onResume方法被调用)的进程
- 可见进程:拥有一个可见但是没有焦点的Activity(onPause方法被调用)
- 服务进程:拥有一个通过startService方法启动的服务
- 后台进程:拥有一个不可见的Activity(onStop方法被调用)的进程
- 空进程:没有拥有任何活动的应用组件的进程
电话录音机
电话的状态
- 空闲状态
- 响铃状态
- 摘机状态
录音机
- 音频文件的编码和格式不是一一对应的
Service
- 就是默默运行在后台的组件,可以理解为是没有前台的activity,适合用来运行不需要前台界面的代码
- 服务可以被手动关闭,不会重启,但是如果被自动关闭,内存充足就会重启
- startService启动服务的生命周期
- onCreate-onStartCommand-onDestroy
- 重复的调用startService会导致onStartCommand被重复调用
进程优先级
- 前台进程:拥有前台activity(onResume方法被调用)
- 可见进程:拥有可见activity(onPause方法被调用)
- 服务进程:不到万不得已不会被回收,而且即便被回收,内存充足时也会被重启
- 后台进程:拥有后台activity(activity的onStop方法被调用了),很容易被回收
- 空进程:没有运行任何activity,很容易被回收
电话窃听器
- 电话状态:空闲、响铃、接听
获取电话管理器,设置侦听
TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);tm.listen(new MyPhoneStateListener(), PhoneStateListener.LISTEN_CALL_STATE);
侦听对象的实现
class MyPhoneStateListener extends PhoneStateListener{ //当电话状态改变时,此方法调用 @Override public void onCallStateChanged(int state, String incomingNumber) { // TODO Auto-generated method stub super.onCallStateChanged(state, incomingNumber); switch (state) { case TelephonyManager.CALL_STATE_IDLE://空闲 if(recorder != null){ recorder.stop(); recorder.release(); } break; case TelephonyManager.CALL_STATE_OFFHOOK://摘机 if(recorder != null){ recorder.start(); } break; case TelephonyManager.CALL_STATE_RINGING://响铃 recorder = new MediaRecorder(); //设置声音来源 recorder.setAudioSource(MediaRecorder.AudioSource.MIC); //设置音频文件格式 recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setOutputFile("sdcard/haha.3gp"); //设置音频文件编码 recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); try { recorder.prepare(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } break; } }}
0 0
- Android的Service详解
- Service的使用详解
- Service的详解
- 转的 Service详解
- Service的完全详解
- Service详解(三):Service的使用
- 安卓中服务Service的详解
- Android Service的分类详解
- Android Service生命周期 Service里面的onStartCommand()方法详解
- Android Service生命周期 Service里面的onStartCommand()方法详解
- Android Service生命周期 Service里面的onStartCommand()方法详解
- Android Service生命周期 Service里面的onStartCommand()方法详解
- service 详解
- Service详解
- service详解
- Service 详解
- Service详解
- Service详解
- IOS如何使用第三方字体
- QPushButton
- 认识屏蔽箱的特点
- 收藏网站69
- C程序编译过程浅析
- Service的详解
- 收藏网站71
- OSGI审查于开发帮助文档
- nodejs模块
- centos7新装系统基础配置
- SAS9.3 EM 点击没反应不能打开的解决方法
- 2015年全国谷歌卫星地图离线数据存储方案
- 页面缓存问题
- shell中$0,$?,$!等的特殊用法