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

위젯클릭으로 서비스 시작질문입니다.

0 추천

안녕하세요.

기능하고 자하는 내용 - 멜론의 위젯처럼 Play버튼을 누르면 음악재생(단, 히스토리에 내 앱이 없는상황에서)

히스토리에 있는 경우는 잘됩니다.^^:;

히스토리에 없는 경우에 서비스를 시작시키면 제 앱이 자동으로 올라왔다가 사라지는 모습이 나타나고 실행됩니다.

그래서 실행이 되더라도 한번만 실행되고 화면을 내리고 싶어서 

intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(intent.CATEGORY_LAUNCHER);
intent.addFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY 
| Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP |Intent.FLAG_ACTIVITY_SINGLE_TOP);
context.startActivity(intent);
 
// 홈버튼 클릭으로
intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(intent.CATEGORY_HOME);
intent.addFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY | Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(intent);
 
위와 같은 옵션으로 실행시켰다가 내리는 작업을 해주었는데도 다음곡으로 넘어갈때 또다시 화면이 올라오는 현상이 일어나네요. 조언부탁드립니다.
화면이 시작되지 않고 서비스가 실행되면 가장좋고 그게 안되면 한번만 올리고 내릴 수 있는 방법이 있을까요??
익명사용자 님이 2014년 12월 15일 질문

1개의 답변

0 추천
startActivity를 호출하면 해당 액티비티가 뜰 수 밖에 없습니다.

액티비티를 거치지 않고 서비스에서 음악재생을 직접 제어하면 됩니다.
익명사용자 님이 2014년 12월 15일 답변
조금 더 자세한 설명 부탁드려도 될까요? startActivity를 사용하지않고, 브로드캐스트 리시버를 사용해서 서비스를 시작시켜도 화면이 뜨네요..
...