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

startService를 중복해서 사용해도 되나요 ?

0 추천

public void onClick(View v) {
    if(v.getId() == R.id.play_stop){
        Intent intent = new Intent(this, MusicService.class);
        intent.setAction(Constants.ACTION.PLAY_STOP_ACTION);
        startService(intent);
    }else if(v.getId() == R.id.next){
        Intent intent = new Intent(this, MusicService.class);
        intent.setAction(Constants.ACTION.NEXT_ACTION);
        startService(intent);
    }else if(v.getId() == R.id.prev){
        Intent intent = new Intent(this, MusicService.class);
        intent.setAction(Constants.ACTION.PREV_ACTION);
        startService(intent);
    }
    else if(v.getId() == R.id.End){
        Intent intent = new Intent(this, MusicService.class);
        intent.setAction(Constants.ACTION.STOP_ACTION);
        startService(intent);
    }
}

이런식으로 Intent를 넘겨서 서비스에서 Action에 따라서 기능을 처리하도록 만들었는데요.

기능 자체는 잘 돌아가는데 혹시 이렇게 startService를 중복으로 사용하면 뭔가 문제가 생기나요? 고수님들 조언 부탁드립니다!!

hhjung1202 (1,280 포인트) 님이 2016년 1월 14일 질문

2개의 답변

0 추천
 
채택된 답변
여러 번 해도 상관없습니다.

서비스가 실행되어 있지 않으면 새로 실행하고, 이미 떠있으면 떠 있는 서비스가 호출을 받습니다.
익명사용자 님이 2016년 1월 15일 답변
hhjung1202님이 2016년 1월 16일 채택됨
와!!!! 님 리얼... 엄청 고민하고있었는데 감사합니다 ㅠ
사실 Service 클래스에 Broadcast Receiver 이너클래스를 만들고, 동적 리시버 등록으로 등록해서 받았는데, 제가 듣기로는 서비스 클래스의 IntentFilter에 Action을 추가하면 보안적으로 좋지 않다고 해서 비록 BroadcastReceiver을 통해서 서비스에 명령을 내려준다고는 하지만 보안이 취약한것은 아닐까 고민하고 있었거든요. ㅠ 감사합니다.
0 추천
start service는 한 번만하고, sendBroadcast를 날리는 게 낫지 않을까요?
쎄미 (162,410 포인트) 님이 2016년 1월 15일 답변
...