BasePresenter.java
2.95 KB
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
package com.sw.laryngoscope.base;
import android.os.Bundle;
import android.os.Looper;
import android.os.Message;
import com.sw.laryngoscope.utils.Logger;
import org.jetbrains.annotations.Nullable;
/**
* @Description 这里用一句话描述
* @Author
* @Time 2019/05/29
*/
public abstract class BasePresenter<V extends BaseView> /*implements RxDataCallBack*/ {
private V view;
protected String TAG = "";
protected CmdHandler mCmdHandler;
private Message msg, msgNomal;
/**
* Presenter被创建后调用
*
* @param savedState 被意外销毁后重建后的Bundle
*/
public void onCreatePresenter(@Nullable Bundle savedState) {
TAG = getClass().getSimpleName();
Logger.i(TAG, "P onCreatePresenter");
mCmdHandler = new CmdHandler(Looper.getMainLooper(), this);
}
public void attachView(V v) {
if (v != null) {
this.view = v;
}
}
public V getView() {
return view;
}
public void deAttachView() {
if (view != null) {
this.view = null;
}
}
/**
* Presenter被销毁时调用
*/
public void onDestroyPresenter() {
Logger.i(TAG, "P onDestroyPresenter " + this);
}
/**
* 在Presenter意外销毁的时候被调用,它的调用时机和Activity、Fragment、View中的onSaveInstanceState时机相同
*
* @param outState
*/
public void onSaveInstanceState(Bundle outState) {
Logger.i("P onSaveInstanceState");
}
/**
* 处理数据返回
*
* @param msg
*/
public void handleCmdMsg(Message msg) {
switch (msg.what) {
default:
break;
}
}
/**
* 发送msg
*
* @param what 消息类型
*/
public void sendMsg(int what) {
//msg = new Message();
msg = Message.obtain();
msg.what = what;
mCmdHandler.sendMessage(msg);
}
/**
* 发送msg
*
* @param what 消息类型
* @param arg1 消息内容
*/
public void sendMsg(int what, int arg1) {
msg = Message.obtain();
msg.what = what;
msg.arg1 = arg1;
mCmdHandler.sendMessage(msg);
}
/**
* 发送msg
*
* @param what 消息类型
* @param arg1 消息内容1
* @param arg2 消息内容2
*/
protected void sendMsg(int what, int arg1, int arg2) {
msg = Message.obtain();
msg.what = what;
msg.arg1 = arg1;
msg.arg2 = arg2;
mCmdHandler.sendMessage(msg);
}
/**
* 发送msg
*
* @param what 消息类型
* @param obj obj
*/
protected void sendMsg(int what, Object obj) {
msg = Message.obtain();
msg.what = what;
msg.obj = obj;
mCmdHandler.sendMessage(msg);
}
}