2013-08-28 11 views
0

저는 잠시 동안 만든 서비스로 즐겁게 일해온 주요 활동을했습니다. 최근에 내 앱에 DialogFragment를 추가해야했지만 잘 작동했지만 현재는 내 서비스에 전화를 걸어 일반적인 Intent 유형 문자열 이상을 전달해야합니다. 기본적으로 서비스에 비트 맵 배열을 전달해야하며이를 의도에 포함시키지 않는 것이 합리적이라고 생각합니다.Android : 다른 단편과 활동 바운드 서비스에 액세스/공유하는 방법?

지금까지 운이 없었기 때문에 DialogFragement가 열려있는 동안 서비스에 바인딩하여 서비스에 직접 메서드 호출을 할 수 있기를 바랬습니다.

이렇게 할 방법이 있습니까? 그래서 전체 ServiceConnection 클래스를 복사하고 onStart()에서 바인딩해야합니까? 나는 이것을하기에 덜 난잡한 방법이 틀림 없다고 생각했다.

미리 감사드립니다.

답변

1

코드가 없으므로 대부분의 대화 상자 에서처럼 DialogFragment이 사용자로부터 어떤 종류의 입력 (예/아니요 또는 비슷한)을 캡처하는 역할을한다고 가정합니다. 이 경우 입력을 Activity으로 다시 되돌리고이 입력을 기반으로 Service을 호출하면됩니다. 또 다른 질문은 Bitmaps의 출처입니까? Bitmaps의 배열을 Activity에서 Service으로 전달하는 것이 나에게 좋은 결정으로 보이지 않는 것 같습니다. Bitmaps이 네트워크 또는 리소스에서 왔는지 여부에 관계없이 Bitmap 검색 로직을 Service 자체로 이동하는 것이 좋습니다.

대부분의 부분은 응용 프로그램 디자인에 대한 가정에 기반을 두었습니다. 따라서 이러한 가정이 잘못 될 경우 코드를 게시하거나 응용 프로그램에 대한 광범위한 설명을 추가하면 내 답변을 검토하게되어 기쁩니다.

+0

저장 및 취소 단추가있는 DialogFragment를 사용하고 있습니다. 내장 카메라를 시작하는 카메라 버튼이 있으며 DialogFragment는 onActivityResult()를 구현합니다. DialogFragment에는 이미지의 여러 "첨부"를 허용하는 레이아웃이 있습니다. "저장"버튼은 서비스에 비트 맵을 가져 오려고 시도합니다. 지금은 디스크에 이미지를 저장하기로 결정했습니다 (이미지를 저장하기 때문에가 아니라 사용 사례에만 필요함). 그래서 이미지 파일 이름/경로가 포함 된 인 텐트를 보낼 수 있습니다. 당신은 수사를 서비스로 옮길 것을 제안하는 수표를받습니다. – garlicman

+0

@garlicman, 다행스럽게도 도움이되었습니다. – Egor

+0

예 및 sdcard 접근 방식은 실제로 효과가 좋습니다. 인 텐트를 통해 경로/파일을 전달하면 (Base64 인 코드 한 후 인 텐트 프레임 워크를 통해 전달해야하므로) 원래 서비스에 바인딩하여 직접 메서드 호출을 원했기 때문에 복사하지 않아도됩니다. – garlicman

관련 문제