마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

답변해주셔서 감사합니다.

0 추천

답변자님꼐서 도와주신대로 해보기위해 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문을 벗어나지도 못하고, 

서비스에 바인드하는 메서드가 메인스레드에서 호출된다거나 그런 상황인건가요?
바인드 이후의 코드까지 처리하고싶다면 별개의 스레드를 만들어서 처리해야할까요??

익명사용자 님이 2018년 8월 2일 질문
원 질문자입니다. 로그인을 안하고 질문드렸는데 상관없을까요?

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...