美文网首页
Flutter Plugin中监听Activity生命周期

Flutter Plugin中监听Activity生命周期

作者: 倪大头 | 来源:发表于2022-03-23 09:37 被阅读0次

    最近接了个三方支付功能,接口方没有提供支付回调,需要在onResume里获取intent里的值,所以我需要在plugin里监听activity的生命周期。

    registerWith注册通道的方式已经淘汰,我们使用onAttachedToEngine注册通道,并把监听写在这里:

    @Override
    public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) {
        methodChannel = new MethodChannel(binding.getBinaryMessenger(), "xxx_plugin");
        methodChannel.setMethodCallHandler(this);
    
        ((Application) binding.getApplicationContext()).registerActivityLifecycleCallbacks(new Application.ActivityLifecycleCallbacks() {
            @Override
            public void onActivityCreated(Activity activity, Bundle bundle) {
    
            }
    
            @Override
            public void onActivityStarted(Activity activity) {
    
            }
    
            @Override
            public void onActivityResumed(Activity activity) {
                Log.i(TAG, "----onActivityResumed-----");
            }
    
            @Override
            public void onActivityPaused(Activity activity) {
    
            }
    
            @Override
            public void onActivityStopped(Activity activity) {
    
            }
    
            @Override
            public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {
    
            }
    
            @Override
            public void onActivityDestroyed(Activity act) {
                if (act == activity) {
                    ((Application) binding.getApplicationContext()).unregisterActivityLifecycleCallbacks(this);
                }
            }
       });
    }
    

    FlutterPluginBinding提供的getApplicationContext()方法可以获取Application,再使用registerActivityLifecycleCallbacks注册生命周期监听即可。

    如果你的插件包没有升级到V2,仍然使用registerWith注册通道的话,可以用registrar.context()注册生命周期监听:

    ((Application) registrar.context()).registerActivityLifecycleCallbacks(new Application.ActivityLifecycleCallbacks() {
      ......
    }
    

    相关文章

      网友评论

          本文标题:Flutter Plugin中监听Activity生命周期

          本文链接:https://www.haomeiwen.com/subject/ofkcjrtx.html