Binder 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
로 정의된 IBinder
경량 원격 프로시저 호출 메커니즘의 핵심 부분인 원격 개체의 기본 클래스입니다.
[Android.Runtime.Register("android/os/Binder", DoNotGenerateAcw=true)]
public class Binder : Java.Lang.Object, Android.OS.IBinder, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/os/Binder", DoNotGenerateAcw=true)>]
type Binder = class
inherit Object
interface IBinder
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 상속
- 특성
- 구현
설명
로 정의된 IBinder
경량 원격 프로시저 호출 메커니즘의 핵심 부분인 원격 개체의 기본 클래스입니다. 이 클래스는 이러한 개체의 표준 로컬 구현을 제공하는 IBinder의 구현입니다.
대부분의 개발자는 이 클래스를 직접 구현하지 않고 Aidl 도구를 사용하여 원하는 인터페이스를 설명하고 적절한 Binder 하위 클래스를 생성합니다. 그러나 바인더에서 직접 파생하여 사용자 지정 RPC 프로토콜을 구현하거나 원시 바인더 개체를 직접 인스턴스화하여 프로세스 간에 공유할 수 있는 토큰으로 사용할 수 있습니다.
이 클래스는 기본 IPC 기본 형식일 뿐입니다. 애플리케이션의 수명 주기에는 영향을 주지 않으며 만든 프로세스가 계속 실행되는 한 유효합니다. 이 작업을 올바르게 사용하려면 시스템에서 프로세스가 계속 실행 중임을 알 수 있도록 하는 최상위 애플리케이션 구성 요소(a android.app.Service
, android.app.Activity
또는 android.content.ContentProvider
)의 컨텍스트 내에서 이 작업을 수행해야 합니다.
프로세스가 사라질 수 있는 상황을 염두에 두어야 하므로 나중에 새 바인더를 다시 만들고 프로세스가 다시 시작될 때 다시 연결해야 합니다. 예를 들어 이 작업을 사용하는 android.app.Activity
경우 활동이 시작되지 않을 때마다 활동의 프로세스가 종료될 수 있습니다. 나중에 활동이 다시 만들어지면 새 바인더를 만들고 올바른 위치로 다시 전달해야 합니다. 작업을 다시 만드는 것과 관련이 없는 다른 이유(예: 브로드캐스트 수신)를 위해 프로세스가 시작될 수 있음을 알고 있어야 합니다. 새 바인더를 만드는 코드입니다.
에 대한 android.os.Binder
Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.
생성자
Binder() |
기본 생성자는 개체를 초기화합니다. |
Binder(IntPtr, JniHandleOwnership) |
JNI 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다. |
Binder(String) |
설명자와 함께 원시 바인더 개체(토큰)를 만들기 위한 생성자입니다. |
속성
CallingPid |
처리 중인 현재 트랜잭션을 보낸 프로세스의 ID를 반환합니다. |
CallingUid |
처리 중인 현재 트랜잭션을 보낸 프로세스에 할당된 Linux UID를 반환합니다. |
CallingUidOrThrow |
현재 처리 중인 트랜잭션을 보낸 프로세스에 할당된 Linux UID를 반환합니다. |
CallingUserHandle |
처리 중인 현재 트랜잭션을 보낸 프로세스에 할당된 UserHandle을 반환합니다. |
CallingWorkSourceUid |
호출자가 설정한 작업 원본을 반환합니다. |
Class |
이 |
Handle |
기본 Android 인스턴스에 대한 핸들입니다. (다음에서 상속됨 Object) |
InterfaceDescriptor |
기본 구현은 빈 인터페이스 이름을 반환합니다. |
IsBinderAlive |
추가할 수 있습니다.
|
JniIdentityHashCode |
로 정의된 |
JniPeerMembers |
로 정의된 |
PeerReference |
로 정의된 |
ThresholdClass |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
ThresholdType |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
메서드
AttachInterface(IInterface, String) |
특정 인터페이스를 바인더와 연결하기 위한 편의 메서드입니다. |
ClearCallingIdentity() |
현재 스레드에서 들어오는 IPC의 ID를 다시 설정합니다. |
ClearCallingWorkSource() |
이 스레드에서 작업 원본을 지웁니다. |
Clone() |
이 개체의 복사본을 만들고 반환합니다. (다음에서 상속됨 Object) |
Dispose() |
로 정의된 |
Dispose(Boolean) |
로 정의된 |
Dump(FileDescriptor, PrintWriter, String[]) |
개체의 상태를 지정된 스트림에 인쇄합니다. |
Dump(FileDescriptor, String[]) |
보다 편리한 버전을 |
DumpAsync(FileDescriptor, String[]) |
마찬가지로 |
Equals(Object) |
다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다. (다음에서 상속됨 Object) |
FlushPendingCommands() |
현재 스레드에서 보류 중인 바인더 명령을 커널 드라이버로 플러시합니다. |
GetHashCode() |
개체에 대한 해시 코드 값을 반환합니다. (다음에서 상속됨 Object) |
JavaFinalize() |
가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다. (다음에서 상속됨 Object) |
JoinThreadPool() |
IPC 스레드 풀에 호출 스레드를 추가합니다. |
LinkToDeath(IBinderDeathRecipient, Int32) |
로컬 구현은 no-op입니다. |
Notify() |
이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다. (다음에서 상속됨 Object) |
NotifyAll() |
이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다. (다음에서 상속됨 Object) |
OnTransact(Int32, Parcel, Parcel, Int32) |
기본 구현은 false를 반환하는 스텁입니다. |
PingBinder() |
기본 구현은 항상 true를 반환합니다. 여기에 있으면 개체가 활성 상태입니다. |
QueryLocalInterface(String) |
제공된 |
RestoreCallingIdentity(Int64) |
현재 스레드에서 들어오는 IPC의 ID를 반환된 이전 ID로 |
RestoreCallingWorkSource(Int64) |
또는 .에서 반환된 토큰을 사용하여 이 스레드에서 작업 원본을 복원 |
SetCallingWorkSourceUid(Int32) |
이 스레드의 작업 원본을 설정합니다. |
SetHandle(IntPtr, JniHandleOwnership) |
Handle 속성을 설정합니다. (다음에서 상속됨 Object) |
ToArray<T>() |
로 정의된 |
ToString() |
개체의 문자열 표현을 반환합니다. (다음에서 상속됨 Object) |
Transact(Int32, Parcel, Parcel, TransactionFlags) |
기본 구현은 구획을 되감고 onTransact를 호출합니다. |
UnlinkToDeath(IBinderDeathRecipient, Int32) |
로컬 구현은 no-op입니다. |
UnregisterFromRuntime() |
로 정의된 |
Wait() |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 <><중단/종료>합니다.> (다음에서 상속됨 Object) |
Wait(Int64, Int32) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
Wait(Int64) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
IJavaPeerable.Disposed() |
로 정의된 |
IJavaPeerable.DisposeUnlessReferenced() |
로 정의된 |
IJavaPeerable.Finalized() |
로 정의된 |
IJavaPeerable.JniManagedPeerState |
로 정의된 |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
로 정의된 |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
로 정의된 |
IJavaPeerable.SetPeerReference(JniObjectReference) |
로 정의된 |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
로 정의된 |
GetJniTypeName(IJavaPeerable) |
로 정의된 |