Преглед на файлове

fix 修复[Can not perform this action after onSaveInstanceState]

robin преди 4 години
родител
ревизия
3d34565b72
променени са 1 файла, в които са добавени 7 реда и са изтрити 3 реда
  1. 7 3
      app/src/main/java/com/doverfuelingsolutions/issp/view/MainActivity.kt

+ 7 - 3
app/src/main/java/com/doverfuelingsolutions/issp/view/MainActivity.kt

@@ -1,5 +1,6 @@
 package com.doverfuelingsolutions.issp.view
 
+import android.annotation.SuppressLint
 import android.content.Context
 import android.content.Intent
 import android.net.Uri
@@ -99,10 +100,13 @@ class MainActivity : AppCompatActivity(),
         mLoginTokenRefresher.stop()
     }
 
+    @SuppressLint("MissingSuperCall")
+    override fun onSaveInstanceState(outState: Bundle) {}
+
     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
         super.onActivityResult(requestCode, resultCode, data)
 
-        lifecycleScope.launch {
+        lifecycleScope.launchWhenStarted {
             when (requestCode) {
                 PreferenceActivity.codeRequestResult -> {
                     data?.let {
@@ -147,7 +151,7 @@ class MainActivity : AppCompatActivity(),
             binding.stationLogo,
             binding.stationName -> {
                 DFSLog.i("refresh station info")
-                lifecycleScope.launch {
+                lifecycleScope.launchWhenStarted {
                     val resultPhone = SystemApi.sessionInfo()
                     if (resultPhone.success && resultPhone.data != null) {
                         GlobalData.stationTel.set(resultPhone.data.phoneNumber)
@@ -178,7 +182,7 @@ class MainActivity : AppCompatActivity(),
 
     override fun onFusionStatus(status: FusionStatus) {
         DFSLog.i("Fusion output status: ${status.name.toLowerCase(Locale.CHINESE)}")
-        lifecycleScope.launch {
+        lifecycleScope.launchWhenStarted {
             dialogFusionLinking?.dismiss()
             when (status) {
                 FusionStatus.Connecting -> {