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.trust.ywx.multiple.MultipleReactActivityDelegate
import com.trust.ywx.specs.navigation.NavigationHelper
import com.trust.ywx.utils.AppManager
class BuzActivity : ReactActivity() {

查看文件

@ -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"

查看文件

@ -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()

查看文件

@ -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()
}

查看文件

@ -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,4 +1,4 @@
package com.trust.ywx
package com.trust.ywx.utils
import android.app.Activity
import java.util.Stack

查看文件

@ -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