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

- 将 AppManager 从根包移动到 utils 包
-移除了 NavigationManager 中的 Toast弹窗
- 更新了 BuzActivity、MainActivity、MainApplication 和 WelcomeActivity 中的 AppManager 引用
- 在 WelcomeActivity 中增加了初始化失败的错误处理逻辑
这个提交包含在:
xuqm 2025-07-18 16:44:51 +08:00
父节点 ff2252715c
当前提交 477025c1b1
共有 7 个文件被更改,包括 20 次插入5 次删除

查看文件

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

查看文件

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

查看文件

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

查看文件

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

查看文件

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

查看文件

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

查看文件

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