我试图避免Flutter的默认行为,而不是在按下(当然是智能手机的)后退按钮时关闭应用程序,而是在后台发送该应用程序,因此当我尝试重新打开该应用程序时,它将返回在最后一个屏幕上。
我也尝试了在这里找到的解决方案,但是没有用。 这是代码:
return WillPopScope(
onWillPop: () async =>
await SystemChannels.platform.invokeMethod('SystemNavigator.pop'),
child: Scaffold(
它还会关闭该应用程序,并且不会在后台发送它。 包含上面显示的代码的屏幕是最后一条路线。
答案 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的更多信息。