woong's
Android Activity 가 아닌 곳에서 Intent 하기 본문
Android Activity 가 아닌 곳에서 Intent 하기
E/AndroidRuntime(16053): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
Activity 가 아닌 곳에서 아래와 같이 Intent 를 사용하니 이와 같은 에러가 나타납니다.
1 2 3 4 5 6 7 8 | /** * 전화번호 선택시 Direct 전화 걸기 */ private void selectPhoneNumber() { Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(TELL_FORMAT+phoneNumber)); context.startActivity(intent); } |
Service , BroadcastReceiver , baseAdapter , View 등에서 Intent로 새로운 Activity를 열려고 하면 \
런타임 에러가 나타납니다.
안드로이드에서 View 를 사용 할때
어디서 보여줄지 대상이 필요 합니다.
this 또는 클래스명.this 와 같이
어느 Task에 Activity를 띄울건지 모르겠다는 에러입니다.
Task는 Activity를 관리하는 것으로 Activity를 띄우려면 해당 Task에 띄워야 하는데
Activity가 아니므로 새로운 Activity를 띄우려면 에러가 나타 납니다.
1 2 3 4 5 6 7 8 | /** * 전화번호 선택시 Direct 전화 걸기 */ private void selectPhoneNumber() { Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(TELL_FORMAT+phoneNumber)); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } |
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
위 한줄 코드를 통해서 새로운 Task 를 통해서 띄우게 되면 에러 없이 잘 동작 하는 것 을 볼 수 있습니다 .
'Develop > Android' 카테고리의 다른 글
android Parcelable encountered IOException writing serializable object 에러 수정하기 (0) | 2016.02.13 |
---|---|
Android WebView 완료시 WebView 쪽으로 스크롤 이동 하는 버그 잡기 (0) | 2016.02.13 |
java.lang.NullPointerException: Argument 'applicationId' cannot be null (0) | 2016.02.13 |
Android Parcel 에러 (0) | 2016.02.13 |
Failed to create the Java Virtual Machine 에러 (0) | 2016.02.13 |
Comments