forked from DuanJiaNing/Musicoco
-
Notifications
You must be signed in to change notification settings - Fork 0
/
STRUCTURE.txt
40 lines (33 loc) · 1.46 KB
/
STRUCTURE.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
一 MainActivity 数据更新路径:
1. onConnected 与服务器建立连接时
1.1 update 更新全部
(1) bottomNavigationController.update
底部播放导航
(2) mostPlayController.update
最近最多播放
(3) mainSheetsController.update
主歌单
(4) mySheetsController.update
我的歌单
2. onResume
2.1 bottomNavigationController.update
2.2 mySheetsController.update
2.3 mainSheetsController.update
3. BroadcastReceiver
3.1 mySheetDataChangedReceiver
3.1.1 处理的任务
(1) mySheetsController.update
(2) isNeedDeletePlayList
当前播放歌单属于被删除歌单时需将播放列表置为【全部歌单】
3.1.2 广播发送位置
(1) main/BottomNavigationController # startPlay & stopPlay & onPlayListChange
onPlayListChange,startPlay 和 stopPlay 在服务端播放状态改变时回调,此时要同步我的歌单列表中当前正在播放歌单的播放状态(这主要
通过切换列表项中图片上方的播放按钮状态实现)
(2) PlayListAdapter # removeClickListener
PlayListAdapter 在 MainActivity 和 PlayActivity 中都有,所以需要发送广播通知 MainActivity 更新【我的歌单】 列表
Musicoco 开发难点:
java 40000 <-> 25000 行
1. aidl 进程间通信,服务启动过程中有一个耗时操作
2. 完全停止服务,需要先让两个 Activity 解绑服务,之后让服务调用 stopSelf (通过发送广播实现)。
3. 沉浸式状态栏
4. 视图嵌套,滑动事件监听冲突