@@ -9,9 +9,9 @@ import com.blankj.common.CommonTitleActivity
9
9
import com.blankj.utilcode.pkg.R
10
10
import com.blankj.utilcode.util.NetworkUtils
11
11
import com.blankj.utilcode.util.SpanUtils
12
- import com.blankj.utilcode.util.Utils
12
+ import com.blankj.utilcode.util.ThreadUtils
13
+ import com.blankj.utilcode.util.ToastUtils
13
14
import kotlinx.android.synthetic.main.activity_network.*
14
- import java.util.concurrent.atomic.AtomicInteger
15
15
16
16
/* *
17
17
* ```
@@ -21,10 +21,7 @@ import java.util.concurrent.atomic.AtomicInteger
21
21
* desc : demo about NetworkUtils
22
22
* ```
23
23
*/
24
- class NetworkActivity : CommonTitleActivity () {
25
-
26
- var cur: Int = 0
27
- var count: AtomicInteger = AtomicInteger ();
24
+ class NetworkActivity : CommonTitleActivity (), NetworkUtils.OnNetworkStatusChangedListener {
28
25
29
26
companion object {
30
27
fun start (context : Context ) {
@@ -33,8 +30,6 @@ class NetworkActivity : CommonTitleActivity() {
33
30
}
34
31
}
35
32
36
- private lateinit var spanSb: SpannableStringBuilder
37
-
38
33
override fun bindTitle (): CharSequence {
39
34
return getString(R .string.demo_network)
40
35
}
@@ -52,6 +47,7 @@ class NetworkActivity : CommonTitleActivity() {
52
47
NetworkUtils .setWifiEnabled(isChecked)
53
48
updateAboutNetwork()
54
49
}
50
+ NetworkUtils .registerNetworkStatusChangedListener(this )
55
51
}
56
52
57
53
override fun onResume () {
@@ -66,18 +62,45 @@ class NetworkActivity : CommonTitleActivity() {
66
62
when (view.id) {
67
63
R .id.networkOpenWirelessSettingsBtn -> NetworkUtils .openWirelessSettings()
68
64
}
69
- updateAboutNetwork()
70
65
}
71
66
72
- private lateinit var ipV4AddressAsyncTask: Utils .Task <String >
73
- private lateinit var ipV6AddressAsyncTask: Utils .Task <String >
74
- private lateinit var wifiAvailableAsyncTask: Utils .Task <Boolean >
75
- private lateinit var availableAsyncTask: Utils .Task <Boolean >
76
- private lateinit var domainAddressAsyncTask: Utils .Task <String >
67
+ private lateinit var task: ThreadUtils .SimpleTask <String >
77
68
78
69
private fun updateAboutNetwork () {
79
- spanSb = SpanUtils .with (networkAboutTv)
80
- .appendLine(" isConnected: " + NetworkUtils .isConnected())
70
+
71
+ SpanUtils .with (networkAboutTv)
72
+ .append(getSpan())
73
+ .appendLine(" " )
74
+ .appendLine(" " )
75
+ .appendLine(" " )
76
+ .appendLine(" " )
77
+ .appendLine(" Loading..." )
78
+ .create()
79
+
80
+ task = object : ThreadUtils .SimpleTask <String >() {
81
+
82
+ override fun doInBackground (): String {
83
+ val sb: StringBuilder = StringBuilder ();
84
+ sb.appendln(" getIPv4Address: ${NetworkUtils .getIPAddress(true )} " )
85
+ sb.appendln(" getIPv6Address: ${NetworkUtils .getIPAddress(false )} " )
86
+ sb.appendln(" isWifiAvailable: ${NetworkUtils .isWifiAvailable()} " )
87
+ sb.appendln(" isAvailable: ${NetworkUtils .isAvailable()} " )
88
+ sb.appendln(" getBaiduDomainAddress: ${NetworkUtils .getDomainAddress(" baidu.com" )} " )
89
+ return sb.toString()
90
+ }
91
+
92
+ override fun onSuccess (result : String ) {
93
+ SpanUtils .with (networkAboutTv)
94
+ .append(getSpan())
95
+ .append(result)
96
+ .create()
97
+ }
98
+ }
99
+ ThreadUtils .executeByCached(task)
100
+ }
101
+
102
+ private fun getSpan (): SpannableStringBuilder {
103
+ return SpanUtils ().appendLine(" isConnected: " + NetworkUtils .isConnected())
81
104
.appendLine(" getMobileDataEnabled: " + NetworkUtils .getMobileDataEnabled())
82
105
.appendLine(" isMobileData: " + NetworkUtils .isMobileData())
83
106
.appendLine(" is4G: " + NetworkUtils .is4G())
@@ -89,72 +112,23 @@ class NetworkActivity : CommonTitleActivity() {
89
112
.appendLine(" getIpAddressByWifi: " + NetworkUtils .getIpAddressByWifi())
90
113
.appendLine(" getGatewayByWifi: " + NetworkUtils .getGatewayByWifi())
91
114
.appendLine(" getNetMaskByWifi: " + NetworkUtils .getNetMaskByWifi())
92
- .append (" getServerAddressByWifi: " + NetworkUtils .getServerAddressByWifi())
115
+ .appendLine (" getServerAddressByWifi: " + NetworkUtils .getServerAddressByWifi())
93
116
.create()
94
- cur + = 5
95
-
96
- ipV4AddressAsyncTask = NetworkUtils .getIPAddressAsync(true ) { data ->
97
- val num = count.get()
98
- if (num >= cur - 5 ) {
99
- spanSb = SpanUtils ().appendLine(spanSb)
100
- .append(" getIPv4Address: $data " )
101
- .create()
102
- networkAboutTv.text = spanSb
103
- }
104
- count.addAndGet(1 )
105
- }
117
+ }
106
118
107
- ipV6AddressAsyncTask = NetworkUtils .getIPAddressAsync(false ) { data ->
108
- val num = count.get()
109
- if (num >= cur - 5 ) {
110
- spanSb = SpanUtils ().appendLine(spanSb)
111
- .append(" getIPv6Address: $data " )
112
- .create()
113
- networkAboutTv.text = spanSb
114
- }
115
- count.addAndGet(1 )
116
- }
119
+ override fun onDisconnected () {
120
+ ToastUtils .showLong(" onDisconnected" )
121
+ }
117
122
118
- wifiAvailableAsyncTask = NetworkUtils .isWifiAvailableAsync { data ->
119
- val num = count.get()
120
- if (num >= cur - 5 ) {
121
- spanSb = SpanUtils ().appendLine(spanSb)
122
- .append(" isWifiAvailable: $data " )
123
- .create()
124
- networkAboutTv.text = spanSb
125
- }
126
- count.addAndGet(1 )
127
- }
123
+ override fun onConnected (networkType : NetworkUtils .NetworkType ) {
128
124
129
- availableAsyncTask = NetworkUtils .isAvailableAsync { data ->
130
- val num = count.get()
131
- if (num >= cur - 5 ) {
132
- spanSb = SpanUtils ().appendLine(spanSb)
133
- .append(" isAvailable: $data " )
134
- .create()
135
- networkAboutTv.text = spanSb
136
- }
137
- count.addAndGet(1 )
138
- }
139
125
140
- domainAddressAsyncTask = NetworkUtils .getDomainAddressAsync(" baidu.com" ) { data ->
141
- val num = count.get()
142
- if (num >= cur - 5 ) {
143
- spanSb = SpanUtils ().appendLine(spanSb)
144
- .append(" getBaiduDomainAddress: $data " )
145
- .create()
146
- networkAboutTv.text = spanSb
147
- }
148
- count.addAndGet(1 )
149
- }
126
+ ToastUtils .showLong(" onConnected: ${networkType.name} " )
150
127
}
151
128
152
129
override fun onDestroy () {
153
- ipV4AddressAsyncTask.cancel()
154
- ipV6AddressAsyncTask.cancel()
155
- wifiAvailableAsyncTask.cancel()
156
- availableAsyncTask.cancel()
157
- domainAddressAsyncTask.cancel()
130
+ task.cancel()
131
+ NetworkUtils .unregisterOnNetworkChangedListener(this )
158
132
super .onDestroy()
159
133
}
160
134
}
0 commit comments