Forráskód Böngészése

refactor(app): 重构 AppManager 并优化应用初始化逻辑

- 将 AppManager 从根包移动到 utils 包
-移除了 NavigationManager 中的 Toast弹窗
- 更新了 BuzActivity、MainActivity、MainApplication 和 WelcomeActivity 中的 AppManager 引用
- 在 WelcomeActivity 中增加了初始化失败的错误处理逻辑
xuqm 1 hete
szülő
commit
477025c1b1

+ 1 - 0
android/app/src/main/java/com/trust/ywx/BuzActivity.kt

@@ -8,6 +8,7 @@ import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnable
 import com.facebook.react.defaults.DefaultReactActivityDelegate
 import com.trust.ywx.multiple.MultipleReactActivityDelegate
 import com.trust.ywx.specs.navigation.NavigationHelper
+import com.trust.ywx.utils.AppManager
 
 class BuzActivity : ReactActivity() {
 

+ 1 - 0
android/app/src/main/java/com/trust/ywx/MainActivity.kt

@@ -5,6 +5,7 @@ import com.facebook.react.ReactActivity
 import com.facebook.react.ReactActivityDelegate
 import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled
 import com.facebook.react.defaults.DefaultReactActivityDelegate
+import com.trust.ywx.utils.AppManager
 
 class MainActivity : ReactActivity() {
     override fun getMainComponentName(): String = "app"

+ 4 - 1
android/app/src/main/java/com/trust/ywx/MainApplication.kt

@@ -54,6 +54,9 @@ class MainApplication : Application(), ReactApplication {
         super.onCreate()
         if (!BuildConfig.DEBUG)
             createOrUpdateBundle()
+        else {
+            isInit = true
+        }
         loadReactNative(this)
     }
 
@@ -72,7 +75,7 @@ class MainApplication : Application(), ReactApplication {
             // bundle.zip在本地的路径
             val bf = File(FileHelper.getFilePath("bundle.zip", this, "bundles"))
             // 果断点,直接删除重建
-            if (f.exists() && !f.isDirectory) {
+            if (f.exists() && f.isDirectory) {
                 f.delete()
             }
             f.mkdirs()

+ 11 - 0
android/app/src/main/java/com/trust/ywx/WelcomeActivity.kt

@@ -4,8 +4,11 @@ import android.content.Intent
 import android.os.Bundle
 import android.os.Handler
 import android.os.Looper
+import android.os.Process
+import android.widget.Toast
 import androidx.appcompat.app.AppCompatActivity
 import com.trust.ywx.event.BundleUpdateEvent
+import com.trust.ywx.utils.AppManager
 import org.greenrobot.eventbus.EventBus
 import org.greenrobot.eventbus.Subscribe
 import org.greenrobot.eventbus.ThreadMode
@@ -15,21 +18,29 @@ class WelcomeActivity : AppCompatActivity() {
     val handler = Handler(Looper.getMainLooper())
     val runnable = Runnable {
         if (MainApplication.isInit) {
+            handler.removeCallbacks(runnableError)
             startActivity(Intent(this@WelcomeActivity, MainActivity::class.java))
             finish()
         }
     }
+    val runnableError = Runnable {
+        Toast.makeText(this, "初始化失败", Toast.LENGTH_SHORT).show()
+        Process.killProcess(Process.myPid())
+    }
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.activity_main)
         AppManager.addActivity(this)
         handler.postDelayed(runnable, 3000)
+        // 8秒没有完成初始化则显示初始化失败
+        handler.postDelayed(runnableError, 8000)
     }
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onMessageEvent(event: BundleUpdateEvent) {
         handler.removeCallbacks(runnable)
+        handler.removeCallbacks(runnableError)
         startActivity(Intent(this@WelcomeActivity, MainActivity::class.java))
         finish()
     }

+ 1 - 2
android/app/src/main/java/com/trust/ywx/specs/navigation/NavigationManager.kt

@@ -3,7 +3,7 @@ package com.trust.ywx.specs.navigation
 import android.content.Intent
 import android.widget.Toast
 import com.facebook.react.bridge.ReactApplicationContext
-import com.trust.ywx.AppManager
+import com.trust.ywx.utils.AppManager
 import com.trust.ywx.BuzActivity
 import com.trust.ywx.specs.NativeNavigationManagerSpec
 
@@ -13,7 +13,6 @@ class NavigationManager(reactContext: ReactApplicationContext) :
         NavigationHelper.routerName = name
         AppManager.lastActivity()
             ?.apply {
-                Toast.makeText(this, "Navigate to $name", Toast.LENGTH_SHORT).show()
                 startActivity(Intent(this, BuzActivity::class.java))
                 overridePendingTransition(0, 0)
             }

+ 1 - 1
android/app/src/main/java/com/trust/ywx/AppManager.kt → android/app/src/main/java/com/trust/ywx/utils/AppManager.kt

@@ -1,4 +1,4 @@
-package com.trust.ywx
+package com.trust.ywx.utils
 
 import android.app.Activity
 import java.util.Stack

+ 1 - 1
android/app/src/main/java/com/trust/ywx/utils/FileHelper.kt

@@ -2,7 +2,7 @@ package com.trust.ywx.utils
 
 import android.content.Context
 import android.util.Log
-import com.trust.ywx.AppManager
+import com.trust.ywx.utils.AppManager
 import java.io.File
 import java.io.FileInputStream
 import java.io.FileOutputStream