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

서비스가 실행이 안돼요 도와주세요..

0 추천

안녕하세요 초보 개발자입니다..

 

죽지 않는 서비스를 구현해서 그곳에서 계속 BLE 스캐닝을 하려고 하는데요..

 

서비스가 실행이 안됩니다..

 

startService 를 호출했는데 service 의 onCreate 가 호출되지 않아요..

 

물론 Manifest 에도 다 등록했습니다.

 

거두절미하고 소스 좀 첨부해보겠습니다.

 

MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // 리시버 등록
    mBroadcastReceiver = new RestartService();

    try {
        IntentFilter mainFilter = new IntentFilter("com.neonex.lbs.BeaconService.ssss");

        registerReceiver(mBroadcastReceiver, mainFilter);

        startService(new Intent(this, PersistentService.class));
    } catch (Exception e) {
        e.printStackTrace();
    }

 

 

Service

@Nullable
@Override
public IBinder onBind(Intent intent) {
    return null;
}

@Override
public void onCreate() {
    Log.e("PersistentService", "onCreate called");
    // 등록된 알람 제거.
    unRegisterRestartAlarm();

    super.onCreate();

    registerReceiver(mBluetoothReceiver, new IntentFilter(BluetoothDevice.ACTION_FOUND)); // Don't forget to unregister during onDestroy

    mBtAdapter = BluetoothAdapter.getDefaultAdapter();

    mIsRunning = false;
}

 

Manifest.xml

<!-- Beacon service -->
<service
    android:name="com.neonex.lbs.service.PersistentService"
    android:enabled="true"
    android:process=":romote">

    <intent-filter>
        <action android:name="com.neonex.lbs.BeaconService.ssss"/>
    </intent-filter>
</service>

 

무엇이 문제일까요.. 고수님들 조언좀 부탁드립니다!!

 

윤둥이 (4,560 포인트) 님이 2017년 12월 12일 질문
서비스가 실행 안되었다는 것은 어떻게 확인하셨는지 알 수 있을까요?
위에 onCreate 가 호출 안된다고 썻는데용..
올려주신 소스로 블루투스/알람 부분 빼고 실행하여 Logcat 에서 Service의 onCreate() 가 호출되는 것이 확인하였는데, Service가 다른 프로세스에서 실행되도록 설정하셔서 Logcat 에서 해당 로그를 놓치신게 아닌가 해서 여쭤 봤습니다.

1개의 답변

0 추천

Manifset intent-filter 에 Action이 "com.neonex.lbs.BeaconService.ssss" 인 것을 받도록 되어 있는데,

엉뚱하게 MainActivity에서 Intent Action을 받도록 등록하시고, Intent만 보내셔서 filter에서 받지 못 한듯 합니다.

MainActivity에서   registerReceiver 하는 부분을 빼구 아래와 같이 바꿔 보세요..

 Intent intent = new Intent(this, PersistentService.class);
 intent.setAction("com.neonex.lbs.BeaconService.ssss");        

 startService(intent);

 

 

 

익명사용자 님이 2017년 12월 13일 답변
댓글 감사합니다 매니패스트 서비스부분에 process=:remote 이 부분을 빼니까 호출이 되거든요..

저게 뭐하는 애인진 모르겠는데 죽지않는 서비스 구현 예제 보고 따라했어요

저게 뭔가요..
...