Android 애플리케이션에서 Android 서비스로 통신하고 싶습니다. 나는 두 가지 옵션을했지만 내가 선택할 수있는 모르겠어요 응용 프로그램과 통신하기
- 는 서비스 응용 프로그램에서 연결하는 LocalBinder를 사용하여 응용 프로그램
- 로 서비스를 등록합니다.
용액 1
애플리케이션 :
public class MyApplication extends Application {
MyService myService;
public void setMyService(MyService myService) {
this.myService = myService;
}
public void testCallService(){
myService.sendResponseApdu("test".getBytes());
}
}
및 서비스 :
public class MyService extends HostApduService {
@Override
public void onCreate() {
super.onCreate();
((MyApplication)getApplication()).setMyService(this);
}
@Override
public byte[] processCommandApdu(byte[] commandApdu, Bundle extras) {
return new byte[0];
}
@Override
public void onDeactivated(int reason) {
}
}
어플리케이션이 서비스 기준을 사용하여 서비스를 호출한다. 서비스가 로컬 서비스입니다. (원격 서비스 아님) 이 접근 방식은 모든 상황에서 작동합니까?
2 사용하십시오 ServiceConnection로 LocalService를 접근 방식은 서비스에 결합하는 솔루션이 작동합니다 http://developer.android.com/reference/android/app/Service.html#LocalServiceSample
솔루션의 예를 준수합니다. 예제 1도 효과가 있습니까? 솔루션 1과 솔루션 2의 장점은 무엇입니까?
왜 이것을 응용 프로그램으로 확장하고 있습니까? '서비스'와 의사 소통을하기에 좋은 디자인 방식이 아닙니다. – Squonk
우리는 응용 프로그램을 한 번 초기화하여 세션에 대한 참조를 유지하도록 확장합니다. – userM1433372