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

service가 실행이 안돼는 문제...

0 추천

아래와 같이 서비스를 만들었습니다.

public class LoginService extends Service{
     
    private final IRemoteService.Stub mBinder = new IRemoteService.Stub() {
         
        @Override
        public void setLoginInfo(String a_id, String a_mcode) throws RemoteException {
        }
 
        @Override
        public String getLoginId() throws RemoteException {
            return null;
        }
 
        @Override
        public String getLoginMcode() throws RemoteException {
            return null;
        }
    };
     
    @Override
    public IBinder onBind(Intent intent) {
        return mBinder;
    }
     
     
    @Override
    public void onCreate() {
        super.onCreate();
    }
     
    @Override
    public void onDestroy() {
        super.onDestroy();
    }
}

 

그리고 activity에서는 아래와 같이 호출을 합니다.

    private void initConnection(){
        mServiceConnection = new ServiceConnection() {
  
            @Override
            public void onServiceDisconnected(ComponentName name) {
                mService = null;
                Log.d("ddddddddd", "onServiceDisconnected=========");
            }
              
            @Override
            public void onServiceConnected(ComponentName name, IBinder service){
                mService = IRemoteService.Stub.asInterface((IBinder) service);
                Log.d("ddddddddd", "onServiceConnected=========");
            }
        };
         
        if(mService == null){
            startServiceBind();
//          startService(new Intent(this, LoginService.class));
//          boolean b = bindService(new Intent(this, LoginService.class), mServiceConnection, Service.BIND_AUTO_CREATE);
//          Log.d(TAG, "bindservice : "+ b);
        }
    }
     
    private void startServiceBind(){
        Intent i = new Intent(this, LoginService.class);
        startService(i);
        boolean b = bindService(i, mServiceConnection, Context.BIND_AUTO_CREATE);
        Log.d(TAG, "bindservice : "+ b);
    }

 

매니페스트 파일에는 아래와 같습니다.

<service android:name="com.common.LoginService"
    android:enabled="true">
    <intent-filter >
        <action android:name="intent.LoginService"/>
    </intent-filter>
</service>   

 

 

위와 같은 경우에서 

서비스를 bind 하면 항상 false가 떨어집니다.

 

하루종일 구글링 및 자료를 찾아서 해봐도 딱히 해결이 안돼더군요..

 

혹시 어디가 잘 못 되었는지 아시는 분 계시면 흰트 좀 부탁드립니다.

삼식이 (680 포인트) 님이 2013년 11월 7일 질문

1개의 답변

0 추천
getApplicationContext().bindservice를 하니 동작하네요..
삼식이 (680 포인트) 님이 2013년 11월 7일 답변
...