스레드를 실행시키고 핸들로러 전달 받은 값을 해당 페이지에서
전역 변수에 담아 재사용 하려고 짜놓은 구조입니다.
일단 소스 일부는
private HashMap userProfile;
이렇게 변수를 선언했고요.
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(userProfile==null){
userProfile = new HashMap<>();
}else{
userProfile.clear();
}
profile_level = msg.what;
if(msg.obj instanceof HashMap){
userProfile = (HashMap)msg.obj;
Log.i(TAG,"userProfile instanceof + userProfile);
}
스레드에서 필요한 과정을 진행하고 전달 받은 핸들로 입니다.
전달받은 메시지를 꺼내놓고 해당 페이지에 전역변수에 담아 필요한 곳에서 재사용 하려고 만들었거든요
로그를 찍어보면 어떤 상황에서도 userProfile은 필요한 정보가 잘 담겨 있습니다.
앱 처음 실행 후에도 모두 정상이고요. 질문의 문제점도 처음 실행 하고 작동에서는 문제가 없습니다.
그런데 앱을 재실행.. 사용중 폰 메인 화면으로 나갔다 돌아오면 저 구간까지는 필요한 정보가 변수에 잘 담기는데
클릭 이벤트에서 userProfile 사용하려면 계속 null 값만 전달 됩니다.
핸들러로 전달 받아 변수에 담기는 처리 과정은 페이지 로드중에 마지막에 속합니다. ㅠ
사용하는 이벤트도 당연 페이지가 다 로드된 후 클릭 이벤트에서 사용되려고 하는거고요.
무엇이 문제인건지 답을 못찾고 있습니다.
저의 짧은 생각으로는 페이지 로드 중 마지막에 변수에 담아 놓는거니까
이후 클릭 이벤트에 저 변수에 담긴 정보를 사용하면 되겠다는 생각으로 만들었는데 잘 안되네요.