From 2e0fa51a19a4dbb1a13dc0fb0aea344499431023 Mon Sep 17 00:00:00 2001 From: tanjianbin <632190820@qq.com> Date: Sat, 28 Mar 2026 10:12:07 +0800 Subject: [PATCH] =?UTF-8?q?refactor(activity):=20=E4=BD=BF=E7=94=A8=20Acti?= =?UTF-8?q?vity=20Result=20API=20=E6=9B=BF=E6=8D=A2=E5=B7=B2=E5=BC=83?= =?UTF-8?q?=E7=94=A8=E7=9A=84=20startActivityForResult?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新 MainActivity 以使用新的 Activity Result API 处理 SettingsActivity 返回的结果,替代已弃用的 startActivityForResult 和 onActivityResult 方法。这遵循了 Android 最新的开发实践,提高了代码的健壮性和可维护性。 --- .../example/lzwcai_terminal_temi/MainActivity.kt | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/example/lzwcai_terminal_temi/MainActivity.kt b/app/src/main/java/com/example/lzwcai_terminal_temi/MainActivity.kt index de90eca..75c7fa7 100644 --- a/app/src/main/java/com/example/lzwcai_terminal_temi/MainActivity.kt +++ b/app/src/main/java/com/example/lzwcai_terminal_temi/MainActivity.kt @@ -15,6 +15,8 @@ import android.util.Base64 import android.graphics.drawable.GradientDrawable import androidx.appcompat.app.AppCompatActivity import androidx.core.app.ActivityCompat +import androidx.activity.result.ActivityResultLauncher +import androidx.activity.result.contract.ActivityResultContracts import androidx.core.content.ContextCompat import com.example.lzwcai_terminal_temi.databinding.ActivityMainBinding import com.robotemi.sdk.Robot @@ -63,14 +65,9 @@ class MainActivity : AppCompatActivity(), OnRobotReadyListener, TtsListener, OnG private var liveKitManager: LiveKitManager? = null private var isLiveKitConnected = false - companion object { - private const val REQUEST_CLEAR_TASK = 1001 - } - - override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { - super.onActivityResult(requestCode, resultCode, data) - if (requestCode == REQUEST_CLEAR_TASK && resultCode == RESULT_OK) { - data?.getBooleanExtra("clear_task", false)?.let { clearTask -> + private val clearTaskLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> + if (result.resultCode == RESULT_OK) { + result.data?.getBooleanExtra("clear_task", false)?.let { clearTask -> if (clearTask) { setCurrentTask("") } @@ -159,7 +156,7 @@ class MainActivity : AppCompatActivity(), OnRobotReadyListener, TtsListener, OnG lastArrivalLocation = prefs.getString("current_location", null) } binding.btnSettings.setOnClickListener { - startActivityForResult(Intent(this, SettingsActivity::class.java), REQUEST_CLEAR_TASK) + clearTaskLauncher.launch(Intent(this, SettingsActivity::class.java)) } taskController = TaskController(