refactor(activity): 使用 Activity Result API 替换已弃用的 startActivityForResult

更新 MainActivity 以使用新的 Activity Result API 处理 SettingsActivity 返回的结果,替代已弃用的 startActivityForResult 和 onActivityResult 方法。这遵循了 Android 最新的开发实践,提高了代码的健壮性和可维护性。
This commit is contained in:
2026-03-28 10:12:07 +08:00
parent 4983c4c1ad
commit 2e0fa51a19

View File

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