コード例 #1
0
 protected void SetHandle(IntPtr value, JniHandleOwnership transfer)
 {
     JNIEnv.AndroidValueManager.AddPeer(this, value, transfer, out handle);
     handle_type = JObjectRefType.Global;
 }
コード例 #2
0
        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.");
            }
        }
コード例 #3
0
 void IJavaPeerable.SetPeerReference(JniObjectReference reference)
 {
     this.handle      = reference.Handle;
     this.handle_type = (JObjectRefType)reference.Type;
 }
コード例 #4
0
ファイル: Object.cs プロジェクト: vargaz/xamarin-android
 protected void SetHandle(IntPtr value, JniHandleOwnership transfer)
 {
     RegisterInstance(this, value, transfer, out handle);
     handle_type = JObjectRefType.Global;
 }
コード例 #5
0
		void IJavaPeerable.SetPeerReference (JniObjectReference reference)
		{
			this.handle         = reference.Handle;
			this.handle_type    = (JObjectRefType) reference.Type;
		}
コード例 #6
0
		protected void SetHandle (IntPtr value, JniHandleOwnership transfer)
		{
			Java.Lang.Object.RegisterInstance (this, value, transfer, out handle);
			handle_type = JObjectRefType.Global;
		}