답변자님꼐서 도와주신대로 해보기위해 while문을 지우고 실행해보니 바인드되네요!!
도와주셔서 정말 감사합니다. 또 한가지 궁금하게 있는데 이것도 여쭈어도 될까요?
서비스에 바인드하는 메서드를 onStart() 안에서 호출하면, onStart()메서드가 끝까지 돌아야 서비스에 바인드되는데 관련된 자료를 찾지 못해서요..
자세한 상황은 아래에 적겠습니다.
(위와 같은 문제를 겪고 메인액티비티에서 서비스를 시작 -> intro액티비티로 전환을 시켰습니다.)
intro액티비티의 코드 내용에
onStart() {super.onstart();{
Intent s = new Intent(this,service.class)
bindService(s);
// 여기에 while문을 활용하여 서비스 바인드를 기다리기 위한 장치를 넣어봤습니다.
while(!bindCheker){U.stopper(200);}
}
//stopper메서드는 import된 외부클래드에 정의된 thread.stop()메서드입니다. U는 전역으로 선언된 객체입니다.
public void onServiceConnected(ComponentName name,IBinder service) {
DataService.MBinder mb = (DataService.MBinder) service;
mService = mb.getService();
bindChecker = true;
이렇게하고 디버그해보니 while문을 벗어나지도 못하고,
서비스에 바인드하는 메서드가 메인스레드에서 호출된다거나 그런 상황인건가요?
바인드 이후의 코드까지 처리하고싶다면 별개의 스레드를 만들어서 처리해야할까요??