2010-02-24 5 views
0

구현하려고하는 코드에는 서비스와 애플리케이션이 포함되어 있습니다. 응용 프로그램을 처음 시작하면 startService (svc_name) 호출을 사용하여 서비스가 시작됩니다. 여기서 svc name은 서비스를 실행하는 클래스를 가리키는 인 텐트입니다.안드로이드에서 서비스와 애플리케이션 사이의 리소스 공유

서비스와 응용 프로그램간에 리소스 (파일/소켓 연결)를 공유하고 싶습니다. 예를 들어, 하나는 파일에 쓰고 다른 하나는 파일에서 을 읽습니다. 서비스와 앱간에 적절한 동기화를 얻을 수 없습니다.

이 방법에 대해 알려주십시오. 미리 감사드립니다.

+1

"구현하려는 코드에는 서비스와 응용 프로그램이 포함되어 있습니다." - "application"대신 "activity"를 의미합니까? 또는 서비스와 나머지 코드가 실제로 두 개의 개별 응용 프로그램에 있습니까? – CommonsWare

답변

0

RPC를 통해 서비스와 올바른 통신 방법이 있습니다. android RPC 라이브러리는 매우 간단합니다. ApiDemos의 Remoting 예제를 찾으십시오.

+0

'Activity'와 'Service'가 별도의 응용 프로그램에있는 경우에만 적합합니다. 이 사람들이이 사건에 소속되어 있는지 아닌지에 대한 질문은 명확하지 않습니다. – CommonsWare

1

앱과 서비스가 서로 다른 두 가지 응용 프로그램 (다른 .apk 파일) 인 경우 aidl을 사용할 수 있습니다. aidl을 사용하면 프로세스간에 메시지를 보내고받을 수 있습니다.

하지만 앱 (활동)과 서비스가 동일한 프로세스 (동일한 .apk 파일)를 공유하는 경우 SharedPreference 또는 정적 멤버를 사용할 수 있습니다. SharedPreference는 응용 프로그램의 모든 스레드에서 액세스 할 수 있으며 실행간에 지속됩니다.

http://developer.android.com/reference/android/content/SharedPreferences.html

그것은 단지 그러나 부울, 정수, 긴, 플로트, 그리고 문자열 같은 간단한 유형을 처리 할 수 ​​있습니다.

관련 문제