Skip to content

Commit 3b710ae

Browse files
committed
udpate
1 parent eb24f82 commit 3b710ae

File tree

5 files changed

+59
-45
lines changed

5 files changed

+59
-45
lines changed

AdavancedPart/Android WorkManager.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ Android WorkManager
2020
- 否则使用自定义的`AlarmManager + BroadcastReceiver`的实现方式
2121

2222

23+
![image](https://raw.githubusercontent.com/CharonChui/Pictures/master/workmanager.png)
24+
25+
26+
27+
2328
组成部分:
2429

2530
- `WorkManager`:通过对应的参数来接受`work`并排队执行`work`

AdavancedPart/ConstraintLaayout简介.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ ConstraintLaayout简介
77

88
`Android Studio`中可以很方便的将目前的布局直接转换成`ConstraintLayout`,可以在布局的编辑页面上直接右键然后选择就可以了。
99

10+
当然项目中要添加它的依赖,目前最新版本:
11+
```
12+
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
13+
```
14+
1015
<img src="https://raw.githubusercontent.com/CharonChui/Pictures/master/constraintlayout_convert.png?raw=true" width = "80%" />
1116

1217
然后会提示添加`ConstraintLayout`支持库。

AdavancedPart/Handler导致内存泄露分析.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ public class MyActivity extends Activity {
9797
}
9898
```
9999

100-
[更多内容请看内存泄露](https://github.com/CharonChui/AndroidNote/blob/master/BasicKnowledge/%E5%86%85%E5%AD%98%E6%B3%84%E6%BC%8F.md)
100+
[1]:(https://github.com/CharonChui/AndroidNote/blob/master/BasicKnowledge/%E5%86%85%E5%AD%98%E6%B3%84%E6%BC%8F.md)
101101

102102
---
103103

BasicKnowledge/开发中异常的处理.md

Lines changed: 47 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,59 @@
11
开发中异常的处理
22
===
33

4+
![image](https://raw.githubusercontent.com/CharonChui/Pictures/master/oom.png)
5+
46
1. 实现未捕捉异常处理器
5-
```java
6-
public class MyExceptionHandler implements UncaughtExceptionHandler {
7-
private static final String TAG = "MyExceptionHandler";
8-
@Override
9-
public void uncaughtException(Thread arg0, Throwable arg1) {
10-
Logger.i(TAG, "发生了异常,但是被哥捕获了...");
11-
try {
12-
Field[] fields = Build.class.getDeclaredFields();//可以通过Build的属性来获取到手机的硬件信息,由于不同手机的硬件信息部一定有,所以要用反射得到
13-
StringBuffer sb = new StringBuffer();
14-
for(Field field: fields){
15-
String info = field.getName()+ ":"+field.get(null)+"\n";
16-
sb.append(info);
17-
}
18-
StringWriter sw = new StringWriter();
19-
PrintWriter pw = new PrintWriter(sw);
20-
arg1.printStackTrace(pw);//通过这个来得到异常信息
21-
String errorlog = sw.toString();
22-
23-
File file = new File(Environment.getExternalStorageDirectory(),
24-
"error.log");
25-
FileOutputStream fos = new FileOutputStream(file);
26-
sb.append(errorlog);
27-
fos.write(sb.toString().getBytes());
28-
fos.close();
29-
} catch (Exception e) {
30-
e.printStackTrace();
31-
}
32-
android.os.Process.killProcess(android.os.Process.myPid());//这个是只能杀死自己不能杀死别人,这时候系统发现程序在自己的范围之内死了,
33-
系统就会重启程序到出现错误之前的那个Activity。
7+
8+
```java
9+
public class MyExceptionHandler implements UncaughtExceptionHandler {
10+
private static final String TAG = "MyExceptionHandler";
11+
@Override
12+
public void uncaughtException(Thread arg0, Throwable arg1) {
13+
Logger.i(TAG, "发生了异常,但是被哥捕获了...");
14+
try {
15+
Field[] fields = Build.class.getDeclaredFields();//可以通过Build的属性来获取到手机的硬件信息,由于不同手机的硬件信息部一定有,所以要用反射得到
16+
StringBuffer sb = new StringBuffer();
17+
for(Field field: fields){
18+
String info = field.getName()+ ":"+field.get(null)+"\n";
19+
sb.append(info);
20+
}
21+
StringWriter sw = new StringWriter();
22+
PrintWriter pw = new PrintWriter(sw);
23+
arg1.printStackTrace(pw);//通过这个来得到异常信息
24+
String errorlog = sw.toString();
25+
26+
File file = new File(Environment.getExternalStorageDirectory(),
27+
"error.log");
28+
FileOutputStream fos = new FileOutputStream(file);
29+
sb.append(errorlog);
30+
fos.write(sb.toString().getBytes());
31+
fos.close();
32+
} catch (Exception e) {
33+
e.printStackTrace();
3434
}
35+
android.os.Process.killProcess(android.os.Process.myPid());//这个是只能杀死自己不能杀死别人,这时候系统发现程序在自己的范围之内死了,
36+
系统就会重启程序到出现错误之前的那个Activity
3537
}
36-
```
38+
}
39+
```
3740

3841
2. 让这个处理器生效
39-
```java
40-
/**
41-
* 代表的是当前应用程序的进程.
42-
*/
43-
public class MobliesafeApplication extends Application {
44-
public BlackNumberInfo info;
45-
46-
@Override
47-
public void onCreate() {
48-
super.onCreate();
49-
Thread.currentThread().setUncaughtExceptionHandler(new MyExceptionHandler());//这样就能够让异常的处理器设置到我们的程序中
50-
}
42+
43+
```java
44+
/**
45+
* 代表的是当前应用程序的进程.
46+
*/
47+
public class MobliesafeApplication extends Application {
48+
public BlackNumberInfo info;
49+
50+
@Override
51+
public void onCreate() {
52+
super.onCreate();
53+
Thread.currentThread().setUncaughtExceptionHandler(new MyExceptionHandler());//这样就能够让异常的处理器设置到我们的程序中
5154
}
52-
```
55+
}
56+
```
5357

5458
---
5559

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -445,7 +445,7 @@ Android学习笔记
445445
[205]: https://github.com/CharonChui/AndroidNote/blob/master/Dagger2/6.Dagger2Android%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81(%E5%85%AD).md "6.Dagger2Android示例代码(六).md"
446446
[206]: https://github.com/CharonChui/AndroidNote/blob/master/Dagger2/7.Dagger2%E4%B9%8Bdagger-android(%E4%B8%83).md "7.Dagger2之dagger-android(七).md"
447447
[207]: https://github.com/CharonChui/AndroidNote/blob/master/Dagger2/8.Dagger2%E4%B8%8EMVP(%E5%85%AB).md "8.Dagger2与MVP(八).md"
448-
[208]: https://github.com/CharonChui/AndroidNote/blob/master/Dagger2/8.Dagger2%E4%B8%8EMVP(%E5%85%AB).md "Android WorkManager.md"
448+
[208]: https://github.com/CharonChui/AndroidNote/blob/master/AdavancedPart/Android%20WorkManager.md "Android WorkManager.md"
449449

450450

451451

0 commit comments

Comments
 (0)