Java 如何在没有活动的情况下调用函数

Java 如何在没有活动的情况下调用函数,java,android,flutter,aar,Java,Android,Flutter,Aar,我想问一下android部分的问题颤振 public class FlutterPluginMint2Plugin implements FlutterPlugin, MethodCallHandler, ActivityAware, OnServiceBindListener { ........ /** * Plugin registration. */ public static void registerWith(Registrar reg

我想问一下android部分的问题颤振

public class FlutterPluginMint2Plugin implements FlutterPlugin, MethodCallHandler, ActivityAware, OnServiceBindListener {

    ........

    /**
     * Plugin registration.
     */
    public static void registerWith(Registrar registrar) {
        FlutterPluginMint2Plugin instance = new FlutterPluginMint2Plugin();
        Activity activity = registrar.activity();
        Application application = null;
        if (registrar.context() != null) {
            application = (Application) (registrar.context().getApplicationContext());
        }
        instance.setup(registrar.messenger(), application, activity, registrar, null);
    }

    private void setup(final BinaryMessenger messenger,
                       final Application application,
                       final Activity activity,
                       final PluginRegistry.Registrar registrar,
                       final ActivityPluginBinding activityBinding) {
        synchronized (initializationLock) {
            this.activity = activity;
            this.application = application;
            this.context = application;
            mChannel = new MethodChannel(messenger, CHANNEL + "/methods");
            mChannel.setMethodCallHandler(this);
            eChannel = new EventChannel(messenger, CHANNEL + "/events");
            eChannel.setStreamHandler(stateHandler);
            
            **MonitorDataTransmissionManager.getInstance().bind(DeviceType.HealthMonitor, this);**

            
        }
    }

    .......
}
但是我需要的绑定有这个函数,它不能在AAR库中的MonitorDataTransmissionManager类中更改

public void bind(@NonNull DeviceType deviceType, @NonNull MonitorDataTransmissionManager.OnServiceBindListener listener) {
        if (listener instanceof Activity) {
            this.mDeviceType = deviceType;
            this.mBindListener = listener;
            this.mActivity = (Activity)this.mBindListener;
            Intent serviceIntent = new Intent(this.mActivity, OnBLEService.class);
            this.mActivity.bindService(serviceIntent, this, 1);
        } else {
            throw new ClassCastException("MonitorDataTransmissionManager need bind in a ACTIVITY.");
        }
    }
在我的示例中,main.dart

我可以在我的课堂上得到这个活动,但主要的问题是这个在我的flatterpluginmint2plugin课堂中被调用的,有没有办法替换这个被调用的?那么在MonitorDataTransmissionManager类中可以运行吗

我试图让听众参与活动,但没有希望,也无法参与活动

这是我的错误示例:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.mandayahealth.flutter_plugin_mint2_example, PID: 2615
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mandayahealth.flutter_plugin_mint2_example/com.mandayahealth.flutter_plugin_mint2_example.MainActivity}: java.lang.ClassCastException: MonitorDataTransmissionManager need bind in a ACTIVITY.
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2489)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2551)
        at android.app.ActivityThread.access$1000(ActivityThread.java:169)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1432)
        at android.os.Handler.dispatchMessage(Handler.java:111)
        at android.os.Looper.loop(Looper.java:194)
        at android.app.ActivityThread.main(ActivityThread.java:5572)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:968)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:763)
     Caused by: java.lang.ClassCastException: MonitorDataTransmissionManager need bind in a ACTIVITY.
        at com.linktop.MonitorDataTransmissionManager.bind(MonitorDataTransmissionManager.java:120)
        at com.mandayahealth.flutter_plugin_mint2.FlutterPluginMint2Plugin.setup(FlutterPluginMint2Plugin.java:177)
        at com.mandayahealth.flutter_plugin_mint2.FlutterPluginMint2Plugin.registerWith(FlutterPluginMint2Plugin.java:143)
        at com.mandayahealth.flutter_plugin_mint2_example.MainActivity.onCreate(MainActivity.java:17)
        at android.app.Activity.performCreate(Activity.java:6033)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1111)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2442)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2551) 
        at android.app.ActivityThread.access$1000(ActivityThread.java:169) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1432) 
        at android.os.Handler.dispatchMessage(Handler.java:111) 
        at android.os.Looper.loop(Looper.java:194) 
        at android.app.ActivityThread.main(ActivityThread.java:5572) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:968) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:763) 
所以我的问题是,如果没有这个,我如何调用MonitorDataTransmissionManager绑定函数

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.mandayahealth.flutter_plugin_mint2_example, PID: 2615
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mandayahealth.flutter_plugin_mint2_example/com.mandayahealth.flutter_plugin_mint2_example.MainActivity}: java.lang.ClassCastException: MonitorDataTransmissionManager need bind in a ACTIVITY.
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2489)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2551)
        at android.app.ActivityThread.access$1000(ActivityThread.java:169)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1432)
        at android.os.Handler.dispatchMessage(Handler.java:111)
        at android.os.Looper.loop(Looper.java:194)
        at android.app.ActivityThread.main(ActivityThread.java:5572)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:968)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:763)
     Caused by: java.lang.ClassCastException: MonitorDataTransmissionManager need bind in a ACTIVITY.
        at com.linktop.MonitorDataTransmissionManager.bind(MonitorDataTransmissionManager.java:120)
        at com.mandayahealth.flutter_plugin_mint2.FlutterPluginMint2Plugin.setup(FlutterPluginMint2Plugin.java:177)
        at com.mandayahealth.flutter_plugin_mint2.FlutterPluginMint2Plugin.registerWith(FlutterPluginMint2Plugin.java:143)
        at com.mandayahealth.flutter_plugin_mint2_example.MainActivity.onCreate(MainActivity.java:17)
        at android.app.Activity.performCreate(Activity.java:6033)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1111)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2442)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2551) 
        at android.app.ActivityThread.access$1000(ActivityThread.java:169) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1432) 
        at android.os.Handler.dispatchMessage(Handler.java:111) 
        at android.os.Looper.loop(Looper.java:194) 
        at android.app.ActivityThread.main(ActivityThread.java:5572) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:968) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:763)