protected void SetHandle(IntPtr value, JniHandleOwnership transfer) { JNIEnv.AndroidValueManager.AddPeer(this, value, transfer, out handle); handle_type = JObjectRefType.Global; }
internal static void Dispose(IJavaPeerable instance, ref IntPtr handle, IntPtr key_handle, JObjectRefType handle_type) { if (handle == IntPtr.Zero) { return; } if (Logger.LogGlobalRef) { JNIEnv._monodroid_gref_log( string.Format("Disposing handle 0x{0}\n", handle.ToString("x"))); } JNIEnv.AndroidValueManager.RemovePeer(instance, key_handle); switch (handle_type) { case JObjectRefType.Global: lock (instance) { JNIEnv.DeleteGlobalRef(handle); handle = IntPtr.Zero; } break; case JObjectRefType.WeakGlobal: lock (instance) { JNIEnv.DeleteWeakGlobalRef(handle); handle = IntPtr.Zero; } break; default: throw new InvalidOperationException("Trying to dispose handle of type '" + handle_type + "' which is not supported."); } }
void IJavaPeerable.SetPeerReference(JniObjectReference reference) { this.handle = reference.Handle; this.handle_type = (JObjectRefType)reference.Type; }
protected void SetHandle(IntPtr value, JniHandleOwnership transfer) { RegisterInstance(this, value, transfer, out handle); handle_type = JObjectRefType.Global; }
void IJavaPeerable.SetPeerReference (JniObjectReference reference) { this.handle = reference.Handle; this.handle_type = (JObjectRefType) reference.Type; }
protected void SetHandle (IntPtr value, JniHandleOwnership transfer) { Java.Lang.Object.RegisterInstance (this, value, transfer, out handle); handle_type = JObjectRefType.Global; }