/
SecondActivity.java
119 lines (100 loc) · 4.67 KB
/
SecondActivity.java
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
package com.flyjingfish.androidaop;
import android.os.Bundle;
import android.os.Looper;
import android.util.Log;
import androidx.annotation.Nullable;
import com.flyjingfish.android_aop_core.annotations.CustomIntercept;
import com.flyjingfish.android_aop_core.annotations.Delay;
import com.flyjingfish.android_aop_core.annotations.MainThread;
import com.flyjingfish.android_aop_core.annotations.Scheduled;
import com.flyjingfish.android_aop_core.utils.AndroidAop;
import com.flyjingfish.androidaop.databinding.ActivitySecondBinding;
import com.flyjingfish.androidaop.test.MyOnClickListener2;
import com.flyjingfish.test_lib.annotation.MyAnno;
import java.lang.reflect.Method;
public class SecondActivity extends BaseActivity2 {
private com.flyjingfish.androidaop.databinding.ActivitySecondBinding binding;
static final String TAG = "SecondActivity";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivitySecondBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
binding.btnInner.setOnClickListener((MyOnClickListener2) v -> onSingleClick());
binding.btnOnScheduled1.setOnClickListener(v -> {
setLogcat("延迟2秒开始onScheduled1,time= "+UtilsKt.getCurrentTime());
onScheduled1();
});
binding.btnOnScheduled2.setOnClickListener(v -> {
setLogcat("开始onScheduled2,time= "+UtilsKt.getCurrentTime());
onScheduled2();
});
binding.btnOnScheduled1Stop.setOnClickListener(v -> AndroidAop.INSTANCE.shutdownNow("onScheduled1"));
binding.btnOnScheduled2Stop.setOnClickListener(v -> AndroidAop.INSTANCE.shutdownNow("onScheduled2"));
binding.btnOnDelay1.setOnClickListener(v -> {
setLogcat("延迟5秒开始onDelay1,time= "+UtilsKt.getCurrentTime());
onDelay1();
});
binding.btnOnDelay2.setOnClickListener(v -> {
setLogcat("延迟5秒开始onDelay2,time= "+UtilsKt.getCurrentTime());
onDelay2();
});
binding.btnOnDelay1Stop.setOnClickListener(v -> AndroidAop.INSTANCE.shutdownNow("onDelay1"));
binding.btnOnDelay2Stop.setOnClickListener(v -> AndroidAop.INSTANCE.shutdownNow("onDelay2"));
binding.tvLogcat.setOnClickListener(v -> binding.tvLogcat.setText("日志:(点此清除)\n") );
// Method[] methods = SecondActivity.class.getDeclaredMethods();
// for (Method method : methods) {
// Class<?>[] classes = method.getParameterTypes();
// for (Class<?> aClass : classes) {
// Log.e(TAG,method.getName()+",aClass="+aClass.getName());
// }
// }
}
@MyAnno
public void testIntArray(int[] intArray,int[][] intArray1,int[][][] intArray2,int i,Method[] methods,
boolean[] b1,
char[] b2,
byte[] b3,
short[] b4,
float[] b5,
long[] b6,
double[] b7){
}
@MyAnno
private void onSingleClick() {
testIntArray(new int[]{0,1},null,null,0,null,null,null,null,null,null,null,null);
Log.e("Test_click", "onSingleClick");
}
@Override
protected void onResume() {
super.onResume();
}
@MainThread
void setLogcat(String text) {
binding.tvLogcat.append(text + "\n");
}
@Scheduled(id = "onScheduled1", initialDelay = 2000, interval = 1000, repeatCount = 5,isOnMainThread = true)
void onScheduled1() {
String test = "onScheduled1,time= " + UtilsKt.getCurrentTime() + ",是否主线程=" + (Looper.getMainLooper() == Looper.myLooper());
setLogcat(test);
Log.e(TAG,test);
}
@Scheduled(id = "onScheduled2", initialDelay = 0, interval = 1000, repeatCount = 5,isOnMainThread = false)
void onScheduled2() {
String test = "onScheduled2,time= " + UtilsKt.getCurrentTime() + ",是否主线程=" + (Looper.getMainLooper() == Looper.myLooper());
setLogcat(test);
Log.e(TAG,test);
}
@Delay(id = "onDelay1", delay = 5000,isOnMainThread = true)
void onDelay1() {
String test = "onDelay1 = " + UtilsKt.getCurrentTime() + ",是否主线程=" + (Looper.getMainLooper() == Looper.myLooper());
setLogcat(test);
Log.e(TAG,test);
}
@Delay(id = "onDelay2", delay = 5000,isOnMainThread = false)
void onDelay2() {
String test = "onDelay2 = " + UtilsKt.getCurrentTime() + ",是否主线程=" + (Looper.getMainLooper() == Looper.myLooper());
setLogcat(test);
Log.e(TAG,test);
}
}