File tree 1 file changed +79
-0
lines changed
1 file changed +79
-0
lines changed Original file line number Diff line number Diff line change
1
+ # ThreadSwitch
2
+ 一个方便的主线程和子线程之间的线程切换框架
3
+
4
+ # 使用说明
5
+ - ** 提交主线程任务**
6
+ 当你在子线程完成了任务,比如查询数据库等,需要切换到主线程,在主线程中操作
7
+ ```
8
+ WorkerCenter.getInstance().submitMainThreadTask(new ThreadTask() {
9
+ @Override
10
+ public void onWork() {
11
+ //主线程任务
12
+ }
13
+ });
14
+ //主线程延时任务
15
+ WorkerCenter.getInstance().submitMainThreadTaskDelay(new ThreadTask() {
16
+ @Override
17
+ public void onWork() {
18
+ //主线程延迟任务
19
+ }
20
+ },10000);
21
+ ```
22
+ - ** 提交子线程队列任务**
23
+ 子线程执行队列任务,根据提交的先后顺序执行,无任何方式的结果通知
24
+ ```
25
+ WorkerCenter.getInstance().submitQueneTask(new ThreadTask() {
26
+ @Override
27
+ public void onWork() {
28
+ //子线程队列任务
29
+ }
30
+ });
31
+ //子线程队列延时任务
32
+ WorkerCenter.getInstance().submitQueneTaskDelay(new ThreadTask() {
33
+ @Override
34
+ public void onWork() {
35
+ //子线程队列延时任务
36
+ }
37
+ },10000);
38
+ ```
39
+ - ** 提交子线程任务,同时执行多个子任务**
40
+ 线程池处理提交任务,同时执行。可配置 执行的结果 是在子线程中还是在主线程 执行
41
+ ```
42
+ WorkerCenter.getInstance().submitNormalTask(new WorkerTask<String>("workTask",true) {
43
+
44
+ @Override
45
+ protected String execute() {
46
+ //子线程中执行任务
47
+ return "this is a test task for woker";
48
+ }
49
+
50
+ @Override
51
+ protected void notifyResult(String result) {
52
+ //处理结果,可配置在子线程还是主线程
53
+ if(!TextUtils.isEmpty(result)){
54
+ Log.e("woker","execute's result is " + result + " 当前执行线程是否为主线程 : " + (Looper.myLooper() == Looper.getMainLooper()) );
55
+ }
56
+ }
57
+ });
58
+ ```
59
+ - ** 提交子线程阻塞任务**
60
+ 提交任务 ,阻塞执行,直到子线程任务执行完成
61
+ ```
62
+ WorkerCenter.getInstance().submitBlockTask(new ThreadTask() {
63
+ @Override
64
+ public void onWork() {
65
+ //提交线程池 阻塞任务
66
+ }
67
+ });
68
+ ```
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+
You can’t perform that action at this time.
0 commit comments