我有一个使用Android服务的Xamarin.forms应用程序。
MainPage通过Dependency Service调用Android部分中的特定类
这个类绑定了服务。应用程序上下文由MainPage传递。
internal class ServiceConnection : Java.Lang.Object, IServiceConnection {
public IPlkScanService PlcScanService { get; private set; }
private PlkSystemCallBack _plkSystemCallBack;
private PlkScanCallBack _plkScanCallBack;
private PlustecDocumentScanner _plustecDocumentScanner;
public ServiceConnection(PlustecDocumentScanner plustecDocumentScanner, PlkScanCallBack plkScanCallBack, PlkSystemCallBack plkSystemCallBack) : this(){
this._plkScanCallBack = plkScanCallBack;
this._plkSystemCallBack = plkSystemCallBack;
this._plustecDocumentScanner = plustecDocumentScanner;
}
public ServiceConnection(IntPtr dfref, JniHandleOwnership asdf) {
}
public void OnServiceConnected(ComponentName name, IBinder service) {
this.PlcScanService = PlkScanServiceStub.AsInterface(service);
try {
this.PlcScanService.InitService(this._plkScanCallBack);
this.PlcScanService.RegisterSystemCallBack(this._plkSystemCallBack);
this.PlcScanService.MountScannerDevice();
this._plustecDocumentScanner.PlcScanService = this.PlcScanService;
} catch (RemoteException e) {
e.PrintStackTrace();
}
}
}
一切都很好,但是当调用OnServiceConnected()方法时,我的所有成员变量都是null。
有人有想法吗?
{{1}}
答案 0 :(得分:0)
在Stackoverflow的其他帖子上找到问题 有两件事是错的。第一件事是,如果需要这个ctor,那就是非常错误:
public ServiceConnection(IntPtr dfref, JniHandleOwnership asdf) {
}
第二,我有一个本地副本,它覆盖了IntPtrHandle的基本版本:public IntPtr Handle { get; }
。删除该属性可使地图正常工作
进一步的信息我发现here.