Flutter 应用程序在从原生 Android 调用方法后重新启动而不是恢复

问题描述 投票:0回答:1

我目前正在使用原生 Android 在 Flutter 中进行支付集成。 我设法从支付端获取结果,然后将结果返回到我调用的 flutter 文件中。

这是将我的代码传递给我的调用 flutter 文件。

Intent returnIntent = new Intent(getApplicationContext(), BackToMerchantActivity.class);
                        returnIntent.putExtra("resultTitle",resultPaymentMessage.getStrResultTitle());
                        returnIntent.putExtra("resultInfo",resultPaymentMessage.getStrResultInfo());
                        returnIntent.putExtra("resultExtra",resultPaymentMessage.getStrResultExtra());

                        startActivity(returnIntent);
                        finish();

这是我的调用方法

class BackToMerchantActivity: FlutterActivity() {
  private val CHANNEL = "my.com.ipay88.ipay88payment/backToMarchant"
  private lateinit var _result: MethodChannel.Result

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    GeneratedPluginRegistrant.registerWith(this)
    print("Enter Back To Merchant \n");

    val resultTitle: String = intent.getStringExtra("resultTitle")  ?: ""
    val resultInfo: String = intent.getStringExtra("resultInfo")    ?: ""
    val resultExtra: String = intent.getStringExtra("resultExtra")  ?: ""

    print("Result title : " + resultTitle +" \n");
    print("Result Info  : " + resultInfo +" \n");
    print("Result Extra : " + resultExtra +" \n");

    MethodChannel(flutterView, CHANNEL).invokeMethod("my.com.ipay88.ipay88payment/backToMarchant", mapOf("resultTitle" to resultTitle, "resultInfo" to resultInfo, "resultExtra" to resultExtra));
  }
  
}

结果能够进入调用文件,因为我能够打印出来。然而,从原生 Android 调用 Flutter 应用程序将重新启动整个 Flutter 应用程序,而不是恢复应用程序。请帮忙,因为我被困在这里一周了。任何提示将非常感激

android flutter kotlin dart
1个回答
0
投票

这是更多的解决方法,但您可以为 MaterialApp 小部件创建密钥以保存下一次应用程序重建的状态:

final appKey = GlobalKey<NavigatorState>();
runApp(const App(key:appKey));
© www.soinside.com 2019 - 2024. All rights reserved.