총 게시물 38,796건, 최근 3 건 안내 RSS 글쓰기
이전글  다음글  목록 글쓰기
[안드로이드]

Widget 관련해서

글쓴이 : 에찌 날짜 : 2017-09-27 (수) 16:31 조회 : 874
글주소 : http://www.androidside.com/B49/168478
 
  Xsolla
안정적인 해외 결제. 700개 이상의 페이먼트 서비스. 연동서비스 무료 제공.
www.xsolla.com/ko
  WIX 플래시배너
직접 만드는 홈페이지! 업종별 디자인, 100% 무료 호스팅! 플래시배너
www.wix.com
  제일배너
gif배너제작, 인터넷광고 제작, 플래시배너제작 전문업체
cheilbanner.com
신청하기


안드로이드, 자바 그리고 다양한 질문에 대해 성실히 답해드립니다. Q&A Jang

app 홈화면에서 사용할 widget 에서 데이터를 받아와야하는 부분이 있어 Service 클래스를 만들었습니다.

그리고 onUpdate() 부분에서 startService를 해주기위해 아래와 같은 코드를 넣었습니다.

Intent serviceIntent = new Intent(context, UpdateWidgetService.class);
context.startService(serviceIntent);

단순히 서비스를 시작하는 부분이져.

그런데 여기서!

만약 앱이 종료된 상태에서 위젯을 생성한다면?
(앱 설치후 바탕화면에 위젯이 없는 상태에서 앱을 종료시키고 위젯을 생성하려고하였을때)

Background start not allowed: service Intent 라는 글자가 로그에 찍히며
java.lang.RuntimeException: Unable to start receiver kr.co.widgetapp.widgetApp: java.lang.IllegalStateException: Not allowed to start service Intent
앱은 켜져있지도 않은데 앱이 종료되었습니다 라는 팝업이 출력됩니다.

(현재 해당 코드가 발생하는 곳은 Android 8.0 (O) 입니다.)

앱이 켜져있지않은 상태에서 intent를 사용하려고 해서 그런가..라고 생각이 되어지는데..
혹시 이유와 해결법을 아시는분 있으면 도움좀 부탁드립니다.


이유)
안드로이드 O 버전부터는 배터리 관련 문제로 인하여 백그라운드 서비스를 제한하였다고 합니다.
그래서 기존에 사용하던 서비스 스타트로는 문제가 발생할 수가 있던거였습니다.

해결방법은 찾고있으나 아직 발견하지못하여 혹 아시는분있다면 알려주시면 감사드리겠습니다.



질문자가 자신의 포인트 15 점을 걸었습니다.
답변하시면 포인트 2을, 답변이 채택되면 포인트 12을 드립니다.

질문답변 게시판에서 궁금한 사항을 해결하셨다면, 애써 답변해주신 분께 잘 되었다고 따뜻한 댓글 한마디 남겨주세요.
그리고 답변해주신 분의 글을 '추천' 해주세요.
추천받으신 분에게 1포인트가, 추천하신 분에게도 1포인트가 적립됩니다. ^^

안사드 2017-09-27 (수) 17:44 추천추천 1 반대 0
앱 실행여부 체크해서 앱을 실행후 하던가 해야 할거 같네요.
안사드 2017-09-27 (수) 17:44
베플로 선택된 게시물입니다.
앱 실행여부 체크해서 앱을 실행후 하던가 해야 할거 같네요.
댓글주소 추천 1 반대 0
     
     
에찌 2017-09-28 (목) 09:21
[@안사드] 이게 보니깐 안드로이드 O 부터는 백그라운드에만 있어도 문제가 발생하더군요 쉽게말해 포그라운드 상태가 아닐 때 서비스를 동작하거나 하면 위와 같은 에러가 발생한다고 합니다. ㅎㄷㄷ ㅠ
댓글주소 추천 0 반대 0
에찌 2017-09-28 (목) 10:43
자체 답변을 하겠습니다.

먼저 제 문제에 대해 말씀드리면,
굳이 서비스를 사용하지않더라도 현재 서버에서 데이터를 가져오는 부분은 비동기이기때문에 문제가 발생하지않았습니다.
쉽게말해 삽질을 한거져

그리고 위와 같은 문제가 발생할 경우
몇가지 해결법이 있는데, 우선 결론적으로는 JobService를 사용하시면 될 듯합니다.
대신 JobService는 특정제한조건이 맞아야 동작하는 부분이라고 생각해주시면 될 것이고, 관련 링크를 기입하도록하겠습니다.

https://medium.com/@cwdoh/android-o%EC%97%90%EC%84%9C%EC%9D%98-%EB%B0%B1%EA%B7%B8%EB%9D%BC%EC%9A%B4%EB%93%9C-%EC%B2%98%EB%A6%AC%EB%A5%BC-%EC%9C%84%ED%95%9C-jobintentservice-250af2f7783c
(아주 좋게 자세히 설명해주신 착한분~~)

https://developer.android.com/reference/android/app/job/JobService.html
관련 API
댓글주소 추천 0 반대 0
이전글  다음글  목록 글쓰기

 


Copyright ⓒ www.androidside.com. All rights reserved.
채팅 권한: 글쓰기 1개
2레벨 이상만 대화 가능
공개 채팅: 평일 !(9시 ~ 17시),토,일
안사2 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기