@@ -6,6 +6,8 @@ import android.content.Context
66import android.content.Intent
77import android.net.Uri
88import android.os.Bundle
9+ import android.os.Handler
10+ import android.os.Looper
911import android.os.Parcelable
1012import androidx.fragment.app.Fragment
1113import com.flyjingfish.module_communication_annotation.bean.ParamsInfo
@@ -27,6 +29,7 @@ object ModuleRoute {
2729 private val allRouteClass = mutableMapOf<String , BaseRouterClass >()
2830 private val allClazz = mutableMapOf<String , ClassInfo ?>()
2931 private var application: Application ? = null
32+ private val handler = Handler (Looper .getMainLooper())
3033
3134 fun addRouteClass (moduleName : String , routeClazz : BaseRouterClass ) {
3235 allRouteClass[moduleName] = routeClazz
@@ -135,14 +138,6 @@ object ModuleRoute {
135138 fun go (context : Context , onNavigationBack : OnNavigationBack ? = null):Any? {
136139 val clazzInfo = getClassInfo()
137140
138- PathInfo (" /user/UserActivity" ,ModuleRoute ::class ,0 ,PathType .ACTIVITY , object : NewAny {
139- override fun newInstance (): Any {
140- return 1
141- }
142- },mutableListOf<ParamsInfo >().apply
143- {
144- add(ParamsInfo (" params1" ,String ::class ,null ,false ))
145- })
146141 val found = clazzInfo != null
147142 onNavigationBack?.onResult(NavigationResult (found,this ,context))
148143 if (! found){
@@ -160,7 +155,7 @@ object ModuleRoute {
160155 clazzInfo.pathInfo,
161156 intent
162157 ) {
163- context.startActivity( intent)
158+ goActivity(context, intent)
164159 }
165160 }else if (clazzInfo != null && clazzInfo.pathInfo.type == PathType .FRAGMENT ){
166161 val instance = clazzInfo.pathInfo.newInstance()
@@ -175,6 +170,16 @@ object ModuleRoute {
175170 return null
176171 }
177172
173+ private fun goActivity (context : Context ,intent : Intent ){
174+ if (Looper .getMainLooper() == Looper .myLooper()){
175+ context.startActivity(intent)
176+ }else {
177+ handler.post {
178+ context.startActivity(intent)
179+ }
180+ }
181+ }
182+
178183 /* *
179184 * 跳转页面,需要 [ModuleRoute].[setApplication] 来初始化 application.
180185 * @param onNavigationBack 返回跳转结果
0 commit comments