나는 서비스에 추상 클래스를 바인딩하는 방법이 있는지 궁금 해서요?안드로이드 바인딩 서비스에 추상 클래스
새로운 스레드를 열고 Node.js Socket.IO 서버와 통신하는 서비스가 있습니다. 서비스, 메신저 및 핸들러에 대한 바인딩을 포함하는 추상 클래스를 만들어 여러 응용 프로그램에서 사용할 수 있도록하겠습니다. 의도는이 추상 클래스의 객체를 만들고 만들 수 있으며 서버가 보낸 메시지를 기반으로 호출되는 함수를 재정의해야한다는 것입니다.
내가해야 할 일은 public abstract void bindToService();
을 만들고 Activity가이 클래스를 사용하는 모든 작업에서 재정의 할 수 있지만이를 추상적 클래스의 전용 메서드로 만들고 개체가 초기화 될 때 호출하도록하는 것이 좋습니다. . 이것을 달성 할 수있는 방법이 있습니까? 사전에 어떤 도움
덕분에 ...
액티비티가 서비스에 바인딩하는 방법을 이해합니다. 액티비티가 아닌 추상 클래스를 서비스에 바인딩하는 방법이 있는지 알고 싶었습니다. 그런 식으로 액티비티는 추상 클래스를 확장하는 private 클래스를 가지며, Object가 초기화되면 바인딩됩니다. – nathansizemore
@ w3rthl3ss :'서비스'는 애플리케이션 구성 요소에만 바인딩 할 수 있습니다. 다른 클래스에 바인딩 논리를 구현하려면 'Activity'또는 'Application'에 대한 참조를 전달해야합니다. 당신이 원한 것은'ServiceConnection' 구현입니다. 이것은'Service'가 연결되거나 연결이 끊어 졌을 때 자동으로 콜백을 수신 할 것이고,'IBinder'를 통해 그것과 상호 작용할 수 있습니다. – corsair992
저는 '생성자'클래스의 Activity에 WeakReference를 사용하여이를 해결했습니다. 위의 의견과 유사합니다. – nathansizemore