I am calling an Android Activity from Flutter using Method Channel, however, I need to get some data from the Android activity in the Flutter screen when onBackpressed is invoked in the Android activity
class _HomePage extends State<StatefulWidget> {
var data = "";
static const newScreen = MethodChannel("newScreenPlatform");
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("Native Window"),
),
body: Center(
child: ElevatedButton(
onPressed: () async {
try {
data = await newScreen.invokeMethod('openScreen');
debugPrint("Data $data");
} on PlatformException catch (e) {
debugPrint("Error ${e.message}");
}
},
child: const Text("Open Native Activity")),
),
);
}
}
In the Android activity, I am executing a function on onBackpressed() method:
override fun onBackPressed() {
dispose()
shareData()
super.onBackPressed()
}
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
println("Called Flutter Engine")
super.configureFlutterEngine(flutterEngine)
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, "newScreenPlatform").setMethodCallHandler{
call, result ->
when(call.method){
"openScreen" ->{
// val intent = Intent(this, HeartBeatActivity::class.java )
// startActivity(intent)
result.success("Bpm reading 82")
//handleBackPressed();
}
else ->{
result.notImplemented();
}
}
}
}