#需求优化#
考虑到如果同时有多个设备点击同步播放,原先的逻辑会开启多个Relay服务,会导致后面的Relay设备不能正常被接受,讲道理,也不应该存在多个Relay设备,因此添加判断逻辑,如果在点击同步播放时,当前组播地址中已经存在Relay服务器,则不开启Relay服务。
#一点点学习#
1.重新看了下Fragment相关内容,包括Fragment的静态注册,动态注册,以及切换,重新了解Fragment的4个生命周期,以及一些附带的回调函数的方法。
2.Kotlin中的扩展函数以及运算符重载
2.1扩展函数表示即使在不修改某个类的源码的情况下,仍然可以打开这个类,向该类添加新的函数。
例子↓
fun String.lettersCount(): Int {var count = 0for (char in this) {if (char.isLetter()) {count++}}return count}
这个代码是可以实现向String数据类中添加lettersCount函数,来计算字符串中字母数量。
2.2运算符重载是Kotlin提供的一个比较有趣的语法糖。我们知道,Java中有许多语言内置的运算符 关键字,如+ - * / % ++ --。而Kotlin允许我们将所有的运算符甚至其他的关键字进行重载,从而拓展这些运算符和关键字的用法。
例子↓
class Obj {operator fun plus(obj: Obj): Obj {// 处理相加的逻辑}}
val obj1 = Obj()val obj2 = Obj()val obj3 = obj1 + obj2
这种
obj1 + obj2
的语法看上去好像很神奇,但其实这就是
Kotlin
给我们提供的一种语法糖,它会在编译的时候被转换成obj1.plus(obj2)
的调用方式。运算符重载不仅能够处理基本数据类型的变量,如果是自定义的对象,只要写好相应的函数逻辑,都可以进行处理。