안녕하세요 어제 DB레코더 가져오기 [정조]님의 도움으로 해결을 하게 되었습니다... ^^ 다시한번 감사드립니다...
이번에는 또 다른 문제를 만나게 되었습니다... 뚜시쿵 @.,@;;;;



main [ 엑티비티 ]
setting [ 엑티비티 ]

두개의 엑티비티가 있습니다..

main 엑티비티가 하는일.....
1. 셋팅값이 없으면 셋팅 엑티비티로 넘어갑니다....
2. 셋팅값이 있다면 반복해서 registerRepeat()라는 메서드안의 timerTask로 무한 반복을 하게 합니다...

문제점@@@@

main 엑티비티에서 이런식으로 넘겼습니다..
 if(setSetting() == true){
            try {
                init();
                registerRepeat();
            } catch (Exception e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
  }

setSetting() 메소드는 -> db에 값들을 가져와서 변수에 값을 넣어줍니다...
DB에 값이 있다면 true를
DB에 값이 없다면 false를

-------------------------- 당연히 처음 에뮬레이터에 어플을 등록할때는 DB에 값이 비어있기때문에 잘 넘어갔습니다...

이제   setting 이라는 버튼을 클릭했을시에
setting [ 엑티비티 ]로 넘어갑니다.
--- EditText 에다가 setting 값들을 넣어주고...  Save버튼을 클릭해서 정상적으로 DB에 값들이 저장되었습니다...
----------------------------------------------------------------여기까지는 잘 넘어가집니다.------------------

문제는 -> 바로
registerRepeat();함수의 다시 시작하는부분인데요... 여기가 문제입니다..

main [ 엑티비티 ] 에서는 이미  setSetting() == true에서 디비값이 없기 때문에.. registerRepeat이 실행이 안되었습니다...
그래서 setting [ 엑티비티 ] 에서 save버튼 클릭할때 레지스터를 돌릴려고 했는데 에러가 납니다.

setting [엑티비티 ]
Main m = new Main(); // setting엑티비티에서 Main엑티비티의 함수를 쓰기위해 객체를 생성했습니다.

SaveBtn.setOnClickListener(new View.OnClickListener() {
            
            public void onClick(View view) {
               m.setSetting();  //db에 값이 있으면 변수에 값을 넣어주기 위해서
               m.init(); // registerRepeat() 함수 시작하기 전에 초기화 해주어야함
               m.registerRepeat();  // 무한방복 레지등록 ㄱㄱ싱
                finish();
            }
          
        });

이렇게 세이브 버튼을 클릭해서 finish(); 되기 전에 이런식으로 해주면 에러가 납니다...
그래서
main [ 엑티비티 ]
에다가 인텐트 넘겨주는 부분 아래다가도 했는데 안되더군요...
그래서 또
setting [엑티비티 ]
에다가... savestate에다가 넣어줬는데 안되더군요.. ㅡㅡ;; 여기는 pause부분에서 저장되는부분이니깐 안되는거 이해하겠슴 ;;;

바로 저장하고 난후 돌아가는 시점이 어디인지 알수있을까요??
그 시점에 바로 저 3개의 함수를 넣어서 무한반복시킬수있을꺼같은데...;;

profile