모듈 A에서 구현 된 서비스가 있습니다. 이제 앱 B와 C는이 라이브러리를 사용하여 bindService(service, connection, BIND_AUTO_CREATE)
을 사용하여 서비스와 바인딩하지만 항상 Service의 새 인스턴스를 만듭니다. Messenger
을 사용하여 바인더를 연결 개체에 반환합니다. AIDL을 사용하면 같은 서비스 인스턴스를 공유하는 방법이 어떻게됩니까? 나는이 질문과 관련된 거의 모든 stackoverflow 응답을 읽고 시도했다. 그러나 여전히 나는 위에서 설명한 것을 성취 할 수 없다.여러 앱에서 안드로이드가 기존 서비스와 바인딩합니다.
이 서비스의 매니페스트는 프로세스 속성에 대한 전체 프로세스 이름이있는 모듈 A에 정의되어 있으며 내 보낸 태그는 true로 설정됩니다.
<service
android:name="io.packagename.LocationService"
android:enabled="true"
android:exported="true"
android:permission="android.permission.ACCESS_FINE_LOCATION"
android:process="io.packagename.locationService" />
LocationService 클래스 : 어떤 도움이 많이 감사합니다
class LocationService extends Service {
IncomingHandler handler = new IncomingHandler()
Messenger messenger = new Messenger(handler)
public IBinder onBind(Intent intent) {
Log.d(TAG, "onBind")
return messenger.binder
}
}
.
서비스 클래스 – Lino
@Lino를 게시하십시오. 코드가 많지 않지만 어쨌든 추가했습니다. 감사합니다 –
감사합니다. 더 많은 서비스 인스턴스가 생성되었는지 확인하는 방법은 무엇입니까? – Lino