2012-12-04 3 views
1

나는 onReceive()의 method에서 시작하는 활동을 관리했지만 실제로는 startActivityForResult();을해야합니다.방송 수신자의 결과에 대한 활동 시작?

내가 할 수있는 방법이 있습니까?

덧붙여서, 앱이 사진을 찍을 의도를 시작했을 때 내 앱이 '카메라'앱이되도록하려면 어떻게해야합니까?

답변

2

startActivityForResultActivity 클래스에 정의되어 있으며 액티비티 인스턴스가 필요하기 때문에 Activity에서만 호출 할 수 있습니다.

+1

, 그래서 어떻게 내가 수신기에서 활동을 호출하면 일부 데이터가 다시 나타 납니까? –

+1

당신은 유스 케이스에 대해 설명해 주시겠습니까? 브로드 캐스트 리시버는 공식 자바 문서에서 그런 용도로 사용할 수 없습니다 ** BroadcastReceiver 객체는 onReceive (Context, Intent) 호출 기간 동안 만 유효합니다. 이 함수에서 코드가 반환되면 시스템은 객체가 완료되고 더 이상 활성화되지 않은 것으로 간주합니다 ** ** –

3

방송 수신기에 대해 알아야 할 중요한 일이 있다는 것입니다 .. 당신은 단지 일반적인 context 개체에 액세스하고 startActivityForResult 방법은 클래스에 정의가없는 onRecieve()에서부터 방송 수신기에서 startAcivity()를 호출 할 수 있습니다 5 초 정도 지나면 앱이 다운되기 때문에 장시간 실행되는 프로세스를 추가해서는 안됩니다.

귀하의 경우에 가장 좋은 것은 당신의 방송 수신기에서 다른 활동을 목적으로하고, 그 활동에 사용 startActivityForResult()에서 사진을 찍어 거기에서 계속 ... 내가 발견

+0

그러나 요청한 응용 프로그램에 이미지 uri를 어떻게 반환합니까? 그것이 내가 데이터를 되돌려 줄 필요가 있음을 깨달을 때까지 내가하려고했던 일입니다. –

+0

왜이 브로드 캐스트 수신기를 사용해야합니까? 브로드 캐스트 용 필터는 무엇입니까? 카메라의 instade를 실행할 응용 프로그램을 만들고 싶습니까? – 15412s

+0

예, 아니요. 마치 카메라 앱처럼 실행되는 앱을 만들고 싶지만 실제로는 사용자가 새로운 사진을 찍는 대신 갤러리에서 앱을 선택할 수 있습니다. –