2013-10-06 4 views
1

내 앱에서 여러 개의 이미지를 다른 앱과 공유하려고합니다. Android 개발자 페이지에서 다음을 찾았습니다.인텐시브 서비스의 Android 공유 의도

Intent shareIntent = new Intent(); 
     shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE); 
     shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, SavedImages); 
     shareIntent.setType("image/*"); 
     startActivity(Intent.createChooser(shareIntent, "Share images to..")); 

인텐시브 서비스에서이 코드를 어떻게 사용할 수 있습니까? intentservice에서 샘플 코드를 사용하는 경우 , 내 응용 프로그램 로그 캣 오류로 충돌 :

Calling startActivity from outside of an Activity context requires the flag FLAG_ACTIVITY_NEW_TASK

그래서 내가
shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

을 추가하지만 난 여전히 같은 오류와 내 응용 프로그램 충돌을 얻을.

intentservice에서 공유 인 텐트를 어떻게 사용할 수 있습니까?

+0

- 'IntentService'가 백그라운드에서 작업을 수행하는 동안 사용자가 다른 일을 할 수 없기 때문에 활동을 시작하는 것이 현재 적절한 지 여부는 알 수 없습니다. – CommonsWare

+0

나는 사용자가 다른 것을 할 수 있다는 것을 알고 있지만 어쨌든 코드를 사용하고 싶다. ... – wildcat

답변

3

당신이 당신의 shareIntent을 처리 할 수있는 활동을 선택하는 사용자에 대한 대화 활동을 시작하는 데 사용되는 의도 개체를 만드는 의미 코드

startActivity(Intent.createChooser(shareIntent, "Share images to..")); 

이 라인. 그래서,이 경우 의도는 선택 대화 활동이
당신은 시도 할 수 플래그 FLAG_ACTIVITY_NEW_TASK가 필요 보여 : "어떻게이 intentservice에서이 코드를 사용할 수 있습니다"

Intent chooserIntent = Intent.createChooser(shareIntent, "Share images to.."); 
chooserIntent.addFlag(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(chooserIntent); 
+0

고마워, 지금은 작동 중! – wildcat