프로그래밍/안드로이드

안드로이드 - Activity가 아닌 곳에서 Intent 하기

가카리 2014. 1. 14. 11:13
반응형

Activity가 아닌 곳 , 


Service , BroadcastReceiver , baseAdapter 등에서 Intent로 새로운 Activity를 열려고 하면 



E/AndroidRuntime(27318): android.util.AndroidRuntimeException: 

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

Is this really what you want?


라는 런타임 에러가 나옵니다. 


안드로이드에서 간단한 toast를 띄울 때 '어디다 띄울거냐' 를 판별하는 this 또는 클래스명.this 와 같이 


어느 Task에 Activity를 띄울건지 모르겠다는 에러입니다. 


Task는 Activity를 관리하는 것으로 Activity를 띄우려면 해당 Task에 띄워야 하는데 


Service , BroadcastReceiver , baseAdapter  등 은 Activity가 아니므로 새로운 Activity를 띄우려면 


에러에서의 설명과 같이 


1
2
3
Intent intent = new Intent(mContext, BlackBoxVideoPlayActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);


Intent에 속성을 넣어 새로운 Task를 만들겠다고 해야합니다.

 

출처 : http://muzesong.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-TIP-Activity%EA%B0%80-%EC%95%84%EB%8B%8C-%EA%B3%B3%EC%97%90%EC%84%9C-Intent-%ED%95%98%EA%B8%B0

반응형