Java 如何在没有活动的情况下调用函数
我想问一下android部分的问题颤振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
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)