1
0
Эх сурвалжийг харах

- 增加runMain函数, 直接运行在主线程

drake 5 жил өмнө
parent
commit
e99f79906f

+ 1 - 1
README.md

@@ -54,7 +54,7 @@ allprojects {
 module 的 build.gradle
 
 ```groovy
-implementation 'com.github.liangjingkanji:Net:1.2.6'
+implementation 'com.github.liangjingkanji:Net:1.2.7'
 ```
 
 

+ 0 - 2
net/build.gradle

@@ -46,6 +46,4 @@ dependencies {
 
     compileOnly 'io.reactivex.rxjava2:rxkotlin:2.3.0'
     compileOnly 'io.reactivex.rxjava2:rxandroid:2.1.1'
-
-
 }

+ 50 - 0
net/src/main/java/com/drake/net/observer/ObservaleUtils.kt

@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2018, Umbrella CompanyLimited All rights reserved.
+ * Project:Net
+ * Author:Drake
+ * Date:11/25/19 1:03 PM
+ */
+
+package com.drake.net.observer
+
+import android.os.Handler
+import android.os.Looper
+import io.reactivex.Observable
+import io.reactivex.android.schedulers.AndroidSchedulers
+import io.reactivex.schedulers.Schedulers
+
+// <editor-fold desc="线程">
+
+fun <M> Observable<M>.async(): Observable<M> {
+    return subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
+}
+
+fun <M> Observable<M>.computation(): Observable<M> {
+    return subscribeOn(Schedulers.computation())
+}
+
+fun <M> Observable<M>.io(): Observable<M> {
+    return subscribeOn(Schedulers.io())
+}
+
+fun <M> Observable<M>.single(): Observable<M> {
+    return subscribeOn(Schedulers.single())
+}
+
+fun <M> Observable<M>.newThread(): Observable<M> {
+    return subscribeOn(Schedulers.newThread())
+}
+
+fun <M> Observable<M>.main(): Observable<M> {
+    return observeOn(AndroidSchedulers.mainThread())
+}
+
+// </editor-fold>
+
+fun runMain(block: () -> Unit) {
+    if (Looper.myLooper() == Looper.getMainLooper()) {
+        block()
+    } else {
+        Handler(Looper.getMainLooper()).post { block() }
+    }
+}

+ 1 - 31
net/src/main/java/com/drake/net/observer/ObserverUtils.kt

@@ -15,8 +15,6 @@ import androidx.lifecycle.LifecycleOwner
 import com.drake.brv.PageRefreshLayout
 import com.drake.statelayout.StateLayout
 import io.reactivex.Observable
-import io.reactivex.android.schedulers.AndroidSchedulers
-import io.reactivex.schedulers.Schedulers
 
 
 /**
@@ -178,32 +176,4 @@ fun <M> Observable<M>.page(
     }
     subscribe(observer)
     return observer
-}
-
-// <editor-fold desc="线程">
-
-fun <M> Observable<M>.async(): Observable<M> {
-    return subscribeOn(Schedulers.computation()).observeOn(AndroidSchedulers.mainThread())
-}
-
-fun <M> Observable<M>.computation(): Observable<M> {
-    return subscribeOn(Schedulers.computation())
-}
-
-fun <M> Observable<M>.io(): Observable<M> {
-    return subscribeOn(Schedulers.io())
-}
-
-fun <M> Observable<M>.single(): Observable<M> {
-    return subscribeOn(Schedulers.single())
-}
-
-fun <M> Observable<M>.newThread(): Observable<M> {
-    return subscribeOn(Schedulers.newThread())
-}
-
-fun <M> Observable<M>.main(): Observable<M> {
-    return observeOn(AndroidSchedulers.mainThread())
-}
-
-// </editor-fold>
+}