Nuke Olaf - Log Store
[Android] 안드로이드 - BadTokenException 에러 해결방법 본문
https://tristan91.tistory.com/144
Serivce 에 BroadCastReceiver 를 등록해서 사용하던 도중,
BroadCastReceiver 가 다이얼로그를 출력하지 못하고 BadTokenException 문제가 발생했다.
원인은, 백그라운드에서 동작하는 Service 안의 BroadCastReceiver 가 다이얼로그를 띄울 Context 를 참조하지 못한다는 것이었다.
해결방법은,
1. Dialog 를 띄울 Activity 에서 Activity의 Context 를
public static Context context; 로 선언해주고
onCreate() 에 context = this; 를 해준다
2. 다이얼로그를 출력할 때, context 매개변수에 Activity.context 를 넣어준다
AlertDialog.Builder builder = new AlertDialog.Builder(Activity.context);
builder.setTitle("알림!").setMessage("메시지");
builder.setPositiveButton("확인", new DialogInterface.OnClickListener() {
'Android' 카테고리의 다른 글
[Android] 안드로이드 - 죽지 않는 서비스 (Immortal Service) (0) | 2019.12.02 |
---|---|
[Android] 안드로이드 - bindService 바인드 서비스 예제 공부 (0) | 2019.12.02 |
[Android] 안드로이드 - 서비스 사용 예제 개념 참고 사이트 (0) | 2019.12.02 |
[Android] 안드로이드 - 서비스 사용예제 공부 => 타이머 Service (0) | 2019.12.01 |
[Android] 안드로이드 - 서비스, 나만의 정의 (0) | 2019.12.01 |
Comments