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

Service에서 ACtivity 실행문제.

0 추천
Service에서는 실행 할 수 없는 기능적인 문제가 있어서,

현재 Background에서 돌면서 일정 간격으로 Service에서 Activity를 실행하여 해당 Activity에서 작업을 하고있습니다.(2분간격)

물론 Activity는 투명Activity고 사용자는 Activity가 실행되는 것을 감지하지 못합니다.

 

그러나 여기서 문제가 있는데요..

Activity가 아무리 투명이라해도 Activity는 Activity 잖아요..?

그래서 다른 비디오나, 유투브같은것을 보고있을때 제가 설정한 투명ACtivity가 뜨게되면,

유투브나 비디오앱은 onPause가 되어서 영상이 정지가 됩니다.

사용하는데 상당히 불편함이 동반되는데요..

제 앱의 기능상 Back에서 반드시 2분간격으로 Activity를 이용하여 어떠한 작업을 해야하는데요..

다른 앱에는 물론 영향을 주면 안되는 부분인데..영향을 주게 되네요.

 

Activity가 실행될때 다른 Activity를 onPause상태로 가지 않게, 사용자가 모르게 실행 할 수 있을까요?
안드로이드로우 (15,740 포인트) 님이 2014년 11월 12일 질문
질문이 오해의 소지가 있네요.
제 앱은 특정그룹을 위한 통신관련 앱이고,
송,수신을 위하여 서버와 지속적으로 연결을 유지해야 해서,
Background에서 2분간격으로 서버와 통신을 해야 합니다.

블랙앱은 절대 아닙니다.ㅎㅎ

2개의 답변

+1 추천
 
채택된 답변
단순한 서버와의 통신인데 서비스만으로 동작이 안되는 이유가 존재하나요?
aucd29 (218,390 포인트) 님이 2014년 11월 12일 답변
안드로이드로우님이 2014년 11월 13일 채택됨
답변감사합니다^^
현재 앱에서는 서버와 통신하는 Listener를 하나 만들어서  해당 리스너를 Application 객체에 등록하여 사용하고 있는데요,
서비스로 돌아갈땐 Application 객체가 모든정보를 완벽하게 저장하고 있지는 않다는 문제가 있어서 부득이하게 Activity를 띄워서 사용중입니다. ㅠㅠ
로그를 찍어보니 앱이 Background Service로 동작할때 일정시간이 지난후(기기에 따라 다르게 나타났지만, 일반적으로 1시간정도)
Application 객체의 정보를 모두 잃어버리는 문제가 발생하더라구요..
그래서 Service에서 Activity를 주기적으로 띄워주어 Application 객체를 참조해보니,
시간이 오래 지나도 정보를 잃지 않고, 리스너도 정상 동작하는 것을 확인하여
이렇게 사용중입니다..

뭔가..로직이 잘못된걸까요..?

고견 부탁드립니다..
감사하빈다!ㅎㅎ
만든 리스너를 Service에서 재등록하여 사용하려고 보니,
서버에서 이벤트가 발생하여 리스너가 실행되면,
해당 Service에서 등록한 리스너가 동작하는것이아니라,
기존의 Application 객체에 등록한 리스너가 동작하는것을 발견하였고,
이게 일정시간이 지난후엔 Application 객체가 무너지면서 리스너도 동작하지않고, 서버와의 통신도 단절되는 문제가 있어 질문을 드린것입니다.ㅠㅠ
1. 데이터는 shared preferences 이나 디비에 저장한 뒤 사용하세요
2. 네 로직이 이상합니다.
3. service 가 항상 살아있도록 보장되지 않습니다. 단절된 상태에서 재 연결 시나리오를 생각하고 코딩하세요
좋은답변 감사합니다^^
말씀하신대로 그냥 DB에 저장하는 것으로 프로그램로직을 변경하였습니다. ㅠㅠ
프로그램을 통째로 바꾼다는것이 매우 힘들고 고된작업이었지만..
잘 되네요 ㅎㅎ 정말 감사드려요.
서비스는 항상 살아있도록 알람을 이용하여 코드를 짰는데
아직까지는 이상이 없는듯합니다. ㅎㅎ
감사합니다~~~

그나저나 포인트 88,560 이시네요..
+1 추천
액티비티를 띄우는 이유는 모르겠지만 다이얼로그로 대체하시는게 어떨지..
여룽이 (4,750 포인트) 님이 2014년 11월 12일 답변
안녕핫에ㅛ.
소중한 답변 감사합니다..^^ㅎㅎ
위에 댓글에 적혀있듯이 리스너의 문제로 부득이하게 Activity를 띄워서 사용중이구요..

액티비티를 띄울때 다이얼로그형식으로 띄운다면 다른앱에 지장이 되지 않을까요?
...