android:有些listener类型的回调函数不是interface,而是基本类,所以要用extends去继承,不要implement
来源:互联网 发布:贴图绘制软件 编辑:程序博客网 时间:2024/06/03 23:45
(当然这个问题很简单,但是有时候容易忽略)
例如电话监听服务的listener,
@Override
public void onCreate() {
super.onCreate();
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.listen(new PhoneListener(), PhoneStateListener.LISTEN_CALL_STATE);
}
(这里的PhoneStateListener就是个类,不是interface,所以下面用extends)
private final class PhoneListener extends PhoneStateListener{
private String incomingNumber;
private File file;
private MediaRecorder mediaRecorder;
@Override
public void onCallStateChanged(int state, String incomingNumber) {
try {
switch (state) {
case TelephonyManager.CALL_STATE_RINGING://来电
this.incomingNumber = incomingNumber;
break;
case TelephonyManager.CALL_STATE_OFFHOOK://接通电话
file = new File(Environment.getExternalStorageDirectory(), incomingNumber+System.currentTimeMillis()+ ".3gp");
mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setOutputFile(file.getAbsolutePath());
mediaRecorder.prepare();
mediaRecorder.start();//开始录音
break;
case TelephonyManager.CALL_STATE_IDLE://挂断电话后回归到空闲状态
if(mediaRecorder != null){
mediaRecorder.stop();
mediaRecorder.release();
mediaRecorder = null;
uploadFile();
}
break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
- android:有些listener类型的回调函数不是interface,而是基本类,所以要用extends去继承,不要implement
- Interface、extends、implement的区别
- android: Interface回调函数
- 带来改变的不是成长,而是因为改变所以成长
- java里面interface,implement和extends的作用和用法!
- java extends/interface/implement三者的联系与区别
- java里面interface,implement和extends的作用和用法
- Android的Animation的onAnimationXXX/onAnimationXXX和Listener.onXXX回调函数调用顺序
- 类的继承(extends)
- 有些事情不是看到希望才去坚持,而是坚持了才会看到希望
- Android 关于接口(interface)回调函数的简单应用
- ext listener 回调函数参数
- 接口(interface)原来是可以被继承(extends)的
- 关于接口interface的继承(extends)问题
- 成功,不是你所站的位置,而是你要去的方向
- interface 回调函数--实现子线程类对主线程类界面的控制
- 继承(extends)与实现(implement)
- C# interface 的特性 无法被implement class继承
- IOS:Quartz2D
- C/C++调用Lu脚本函数
- 「插入」排序算法的实现(一)
- 浏览器上模拟qq的消息提示声/网页播放声音
- 深入浅出 - Android系统移植与平台开发(九)- JNI介绍
- android:有些listener类型的回调函数不是interface,而是基本类,所以要用extends去继承,不要implement
- .net中关于增加快捷键(热键)的方法,及UserControl中类似form的Active和Deactive事件
- cocos2d-x初探学习笔记--瓦片地图集
- AJAX 缓存问题的两种解决方法(IE)
- C/C++模块化编译Lu脚本函数
- 关于QComboBox你不知道的那些事!
- Avro简介
- RGB颜色搭配方法
- 修改ExpandableListView中父Item的箭头图标