onbackpressed in android activity send data to flutter

53 Views Asked by At

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();
                }
            }
        }

    }
0

There are 0 best solutions below