按下后退按钮时如何在后台发送应用

时间:2019-08-26 10:44:01

标签: flutter dart

我试图避免Flutter的默认行为,而不是在按下(当然是智能手机的)后退按钮时关闭应用程序,而是在后台发送该应用程序,因此当我尝试重新打开该应用程序时,它将返回在最后一个屏幕上。

我也尝试了在这里找到的解决方案,但是没有用。 这是代码:

 return WillPopScope(
    onWillPop: () async =>
       await SystemChannels.platform.invokeMethod('SystemNavigator.pop'),
    child: Scaffold(

它还会关闭该应用程序,并且不会在后台发送它。 包含上面显示的代码的屏幕是最后一条路线。

1 个答案:

答案 0 :(得分:1)

您可以为此使用MethodChannel,从Flutter调用一个方法,该方法将触发Java中的方法。

// in flutter use something like this
methodChannel.invokeMethod("homeButton");

在Java中,您可以创建类似以下方法:

public void homeButton() {
    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
}

有关如何write platform specific code的更多信息。