文章标题
来源:互联网 发布:cpu多核编程 编辑:程序博客网 时间:2024/06/05 00:35
1.服务
主类:IntentService
主函数:
onCreate() :
HandlerThread thread.start(); 处理任务的子线程
mServiceHandler = new ServiceHandler( thread.gerLooper ); 附着在子线程上 负责处理任务逻辑的一个handler
内部类:ServiceHandler
内部函数:
ServiceHandler(Looper): 构造函数,根据Looper创建handler
handlerMessage(msg):
onHandlerIntent(msg.obj): 虚函数,在主类里面实现它,处理Intent的任务(重要)
stopSelf(msg.arg1)
主类主函数:
然后再onStart()里面 对intent进行获取与初步处理
onStart(Intent intent, int startId) :
msg.obj = intent;
msg.arg1 = startId;
sendMessage(Msg);
主类主函数:onHandlerIntent
(以上是 android.app.IntentService源码)
注意:1. Service不是独立的线程或者进程,它依赖于主线程,不要写耗时操作在里面
2.这里讲的Service是本地服务,远程服务则运行在飞主线程内.
3.Service与activity通信 有两种: 一种IBinder 一种broadcast广播(可能不严谨)
参考这里: https://segmentfault.com/a/1190000002400391
2.广播
这里用广播进行通信
广播很简单,我在service里面注册广播1,activity里面 触发暂停,开始按钮时候就发送广播 sendBroadcast(intent) 出去.注意这里的intent提前在广播1注册时候祖册进去.
还有就是activity里面需要实时更新seekbar,这时候就需要双广播,也就是在activity注册广播2.需要实时的将MediaPlayer的进度发送给activity.这时候就考虑了摒弃广播来写播放器.
思路2.
MediaPlayer 一个子线程
seekbar.lyricView一个线程
两个线程的handler都在main 线程里面创建,自然的就没有了 通信的烦恼.
以上只做工作笔记.
Android 实现音乐播放器
1. MediaPlayer和seekbar 同步
2. 歌词和seekbar同步
3. 暂停时候:拖动seekbar,歌词同步滑动
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- Ubuntu 安装ecipse搭建c++开发环境
- 想不通HTTPS如何校验证书合法性来看
- CWnd与HWND的区别与转换
- HAproxy指南之haproxy双机热备 (案例篇)
- 解决matlab代码中打开摄像头错误
- 文章标题
- Android 7.0相机适配权限管理
- Hinton Nerual Networks课程笔记9d:贝叶斯方法入门
- Android 获取屏幕的多种信息
- 关于Spring 的Classpath: 和 Classpath*: 源码解析
- windows系统安装memcache
- java排序算法(2)—插入排序
- openssl 实现SHA1,DES等加密算法
- Mybatis环境配置