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

UI가 없는 어플을 개발하고 있는 중 질문입니다.

0 추천

아래의 기능이 포함된 어플A을 개발하고 있습니다.

1. 구동되고 있는 어플B에서 어플A을 실행합니다.

2. 어플A는 어플B에 구동되는데 문제가 없도록 구동되어야 합니다.

    즉, UI없이 background로 구동하는게 목적입니다.

3. 어플A는 자체 작업을 한 후 결과를 어플B에 알리고 자동 종료됩니다.

위의 2번 항목을 구현하는 방법으로 UI없는 Manifast에서 Theme.NoDisplay를 이용하여 구현을 했습니다.

그런데 신기하게도 버튼, Edit 등 터치는 되는데 listview, dropbox 등의 터치 및 선택이 되지 않습니다.

혹시 원인을 알고 계시면 알려주세요~~ 그리고 혹 다른 방법으로 UI 없는 어플을 개발할 수 있는 방법이 있나요?

찾다가 시간이 없어서 다시 올립니다.

apple5 (180 포인트) 님이 2013년 4월 16일 질문

1개의 답변

0 추천
그냥 A를 브로드캐스트리시버로 만들고 B를 호출하거나 하면되는거 아닌가요?

저희도 그런식으로 만들었는데?

 

브로드캐스트 + 서비스로도 좋고요
쿨러 (2,790 포인트) 님이 2013년 4월 16일 답변
브로드캐스트도 테스트를 했었는데 여러가지 기능을 생각해서 위와 같이 구현을 했습니다. 구현된 내용에서 터치 반응(?)을 바꿀 방법을 없을까요?
전 A가 동작자체를 안하기 떄문에 왜 저런문제가 있는지 모르겠군요....
액티비티가 다르니까 터치이벤트가 간섭할일이 없을텐데...

다른문제 아닌가요..?
저도 원인은 정확히 모르겠습니다. Manifest에서 Theme.NoDisplay을 다른 theme로 하면 정상적으로 동작합니다. 그런데 UI을 사용자에게 보여주면 안되거든요.
여러 방법들을 사용해 봤는데 아직 해답은 없네요^^.
음...
제가 알기로 Theme.NoDisplay는 화면에 표시만안됬다뿐이지
액티비티는 올라가 있는 상태로 아는데...

그냥 Theme.NoDisplay뺴시고  액티비티의 setContentView()를 하지말고
필요한 동작만하고 바로 finish 타버리게 하면 액티비티는 안보이고 필요한 동작은 하게될겁니다
어플A가 눈에 보이지는 않지만 많은 Acivity로 이루어져 있고 내부적으로 많은 동작을 하기 때문에 현재 setContentView()을 가져갈 수 밖에 없습니다. 짧은 시간으로 이전의 소스를 가지고 구현하다보니 어쩔 수 없네요. 나중에 시간이 되면 이 부분도 테스트를 해보도록 하겠습니다. 조언 감사드립니다.
...