ErQi

各种小知识

各种平时碰到的零散知识点

Method.isBride()

该方法用于判断是否是桥接方法,诞生于1.5,作用判断此方法是否为桥接方法.
桥接方法:因为1.5引入了泛型,在声明的时候可以声明泛型,等到使用时在去指定,但是编辑器不能等到你使用再去编辑,所以有了桥接方法这个概念
代码示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
abstract class A<T> {
abstract T get(T t);
}
// 编辑器对应代码
abstract class A {
abstract Object get(Object obj);
}
// 实现的具体类
class B extends A {
String get(String s) {
return "";
}
}
// 编辑器的实现具体类
class B extends A {
//编译器添加的方法
Object get(Object s) {
return (Object) get((String) s);
}
String get(String s) {
return "";
}
}

其中第一个Object get(Objcet s)就是桥接方法了.

keepScreenOn

在Activity中不想受到系统省电模式中15秒无操作自动熄屏的影响那么就可以使用keepScreenOn属性,在XML中直接设置为true即可.

类的类型

  1. 匿名类(直接new没有赋值给对象的)
  2. 成员类(成员变量对象)
  3. 本地类(方法内部创建的类对象)

Android Layout文件使用Gradle分包

在Module对应的build.gradle文件中的android目录中添加如下即可.

1
2
3
4
5
6
7
8
9
sourceSets {
main {
res.srcDirs = [
'src/main/res/layouts/test',
'src/main/res/layouts/main',
'src/main/res'
]
}
}

在layout文件多了之后,按照模块划分能更方便查看.需要注意:要在project视图下才能看到分包效果