Nuke Olaf - Log Store

[Android] 안드로이드 - BadTokenException 에러 해결방법 본문

Android

[Android] 안드로이드 - BadTokenException 에러 해결방법

NukeOlaf 2019. 12. 2. 13:18

https://blog.yggdrasil.kr/77

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() {

Comments