【Android基础】四、四大组件(二)

原创 2016年06月01日 15:27:00

3.Service
Service
AIDL
Service两种启动方式:
1)startService():onCreate方法只调用一次,每次开启服务都会回调onStart方法,开启服务的进程被杀死后会自动重新启动,手动杀死不会重新启动。
2)bindService():onCreate,onBind,onUnbind,onDestroy只调用一次,只能绑定一次,绑定后只能解绑一次,可以通过定义的接口调用Service中的方法,绑定的Activity销毁,则Service关闭,可以通过混合开启Serivce使服务运行于后台。
AIDL接口用于远程服务的访问,需要在相同的包下面,是通过隐式启动来启动。
电话录音机:
监听电话状态要用TelephonyManager对象, 是一种系统服务,监听的事件是电话响铃状态,PhoneStateListener是一个类而非接口。录音使用的是MediaRecoder对象

TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); 
tm.listen(new listener(),PhoneStateListener.LISTEN_CALL_STATE);
class listener extends PhoneStateListener{  
        @Override  
        public void onCallStateChanged(int state, String incomingNumber) {  
            super.onCallStateChanged(state, incomingNumber);  
            switch (state){  
                case TelephonyManager.CALL_STATE_IDLE:  
                    System.out.println("空闲");  
                    if(recorder != null){  
                    //录音停止
                        recorder.stop();  
                        //释放资源
                        recorder.release();  
                        recorder = null;  
                    }  
                    break;  
                case TelephonyManager.CALL_STATE_RINGING:  
                    System.out.println("响铃");  
                    if(recorder == null){  
                        recorder = new MediaRecorder();  
//设置录音源来自麦克风                        recorder.setAudioSource(MediaRecorder.AudioSource.MIC);  
//设置录音输出格式为3gp                      recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);  
//设置录音输出文件 
recorder.setOutputFile(getFilesDir() + "/" + "luyin.3gp");  
//设置录音编码类型                        recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);  
                       try{  
                       //录音准备
                            recorder.prepare();  
                        }catch (Exception e){  
                            e.printStackTrace();  
                        }  
                    }  
                    break;  
                case TelephonyManager.CALL_STATE_OFFHOOK:  
                    System.out.println("摘机");  
                    if(recorder != null){  
                    //开始录音
                        recorder.start();  
                    }  
                    break;  
            }  
        }  
    }  
}  

四、ContentProvider
ContentProvider
一般很少需要自定义ContentProvider,自定义ContentProvider的话,需要重写query,insert,update,delete等方法,分别返回Cursor,Uri,int类型的数据,这些方法在访问时通过ContentResolver对象调用,需要传入的参数包括Uri和相应方法所需要的参数,这个Uri标识了提供数据的ContentProvider,这个Uri是在清单文件中配置的android:authorities属性,Uri后面可以跟path,通过匹配Uri,用来区分对不同的数据表的操作,在修改过表的数据后,还要通过getContext().getContentResolver().notifyChange(uri,null);这样才能使ContentObserver观察到数据的变化。
访问ContentProvider通过ContentResolver调用相应方法,
使用ContentResolver为指定Uri注册一个ContentObserver派生类:getContentResolver.registerContentObserver(uri,notifyForDescendents,ContentObserver)

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android基础四大组件详解

Android四大组件Activity,Service,BroadCastReceiver,ContentProvider详解
  • qq_35578940
  • qq_35578940
  • 2016年09月05日 23:46
  • 5965

Android四大组件深度解析

系统对四大组件的过程进行了很大程度的封装,日常开发中并不需要了解底层的工作原理,那么研究这些原理的意义在哪里呢?如果你想在技术上更进一步,那么了解一些系统的工作原理是十分必要的,也是开发人员日后成长为...
  • u012768347
  • u012768347
  • 2016年03月15日 12:23
  • 1591

Android四大组件生命周期

四大组件的生命周期     介绍生命周期之前,先了解下任务的概念 任务就是Activity的栈,它由一个或多个Activity组成的共同完成” 应用程序” .栈底的是启动整个任务的Activity,栈...
  • u013068440
  • u013068440
  • 2015年10月29日 23:10
  • 803

android入门基础总结(1) ----四大组件

学习android总结(1)                                                         -------四大组件         初接触andr...
  • chang_xing
  • chang_xing
  • 2012年05月11日 19:36
  • 1591

android四大组件(详细总结)

android四大组件分别为activity、service、content provider、broadcast receiver。 一、android四大组件详解 1、activity ...
  • ican87
  • ican87
  • 2014年03月23日 16:03
  • 130069

Andriod 的四大组件及其作用

Android 开发的四大组件分别是:活动(activity),用于表现功能;服务(service),后台运行服务,不提供界面呈现;广播接受者(Broadcast Receive),勇于接收广播;内容...
  • shiretan
  • shiretan
  • 2017年02月13日 20:49
  • 1181

Android 四大组件及交互式通信

Android 四大组件及交互式通信   ===================四大组件================ 一、Activity组件    Activity 显示的内容可以分为两...
  • moshenglv
  • moshenglv
  • 2014年11月19日 14:59
  • 1751

Android 面试题总结之Android 基础(四)

Android 面试题总结之Android 基础Service(四) 在上一章节Android 面试题总结之Android 基础Broadcast Receiver(三) 我们讲了Broadcas...
  • vfush
  • vfush
  • 2016年05月26日 16:13
  • 8047

android 四大组件 原理详解(通俗易懂)

PS:本文来自百度知道某位大神,吾观止受益匪浅,特此转至本博客,分享之。。。 Android有四大组件:Activity、Service、Broadcast Receiver、Content...
  • bravewly
  • bravewly
  • 2012年12月11日 15:39
  • 3373

基于场景解读Android四大组件

谈到Android四大组件:Activity,Service,Broadcast和ContentProvider,大部分人应该都比较熟悉了,因为会使用这四大组件是作为一个App开发者的基本功。但是,大...
  • okgays
  • okgays
  • 2017年04月02日 14:21
  • 358
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Android基础】四、四大组件(二)
举报原因:
原因补充:

(最多只允许输入30个字)