refactor(activity): 使用 Activity Result API 替换已弃用的 startActivityForResult
更新 MainActivity 以使用新的 Activity Result API 处理 SettingsActivity 返回的结果,替代已弃用的 startActivityForResult 和 onActivityResult 方法。这遵循了 Android 最新的开发实践,提高了代码的健壮性和可维护性。
This commit is contained in:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user