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

백그라운드 서비스로 오래 있을시 어플이 종료되는 문제.

0 추천

현재 공부도 할겸, 혼자서 쓰기도 할겸 해서 알람 어플 하나를 만드는중입니다.기
존에 기본적으로 제공되는 알람이 약간 불편한 감이 있어서
자주 쓰는 설정들만 뽑아서 만드는중인데

 

 

거의 완성단계에 온거같기는 한데...
중간에 자동으로 죽어버리더군요

 

일단 체크를 위해서 매 1초마다 파일에다 메세지를 찍어보게 해놨는데
이게 몇분단위면 별 문제가 없는데
시간단위면 대략 1000초 내외시점에서 종료되더군요.

 

 
 
일단 이론공부할때
안드로이드 OS는 메모리 부족하면 알아서 백그라운드 어플 죽여버린다고 알고있고
다른 배터리 체크 앱이나 그런거 설치시 체크되는 권한을 봐도
종료되면 다시 시작 이라는 권한을 달아둔걸 봐선
종료되는거 자체는 막을 수 없고 죽었을때 현재 상태 저장후 그걸 가지고 다시 시작해버리는거같은데....
 
 
이런 처리에 대한 정보를 구할 수 있을까요?
세젠드로스 (200 포인트) 님이 2013년 5월 20일 질문

2개의 답변

0 추천
 
채택된 답변

안녕하세요. 

검색해보시면 억수로 많이 나옵니다. ^^

몇일전에 답변이 달려있네요.

변수가 죽을때

http://www.masterqna.com/android/5358/

 

아니면 

@Override
	protected void onSaveInstanceState(Bundle outState)
	{
		super.onSaveInstanceState(outState);
		if (outState != null)
		{
			outState.putString("android", value)
		}
	};

	@Override
	protected void onRestoreInstanceState(Bundle savedInstanceState)
	{
		super.onRestoreInstanceState(savedInstanceState);
		if (savedInstanceState != null)
		{
			savedInstanceState.getString("android"));
		}
	};

어플이 죽을때 불러지는 콜백메서드 입니다. 

onSaveInstanceState에다가 죽기전에 저장해야할 정보를 저장 하고 

다시살아났을때 onRestoreInstanceState 에다가 정보를 찾아옴..

 

원하시는 정보인지는 모르겠으나 도움이 되었으면 합니다. 

  (11,920 포인트) 님이 2013년 5월 20일 답변
세젠드로스님이 2013년 5월 20일 채택됨
감사합니다. 일단 테스트 해보겠습니다.
onSaveInstanceState, onRestoreInstanceState  
둘은 호출이 보장되지 않습니다.
저도 초보라 ㅎ
저도 알람을 하나 만들었는데 전 디비를 썼거등요.
디비가 가장좋긴하던데.
마플님 혹시 위에 메서드 말고 다른 더 좋은 방법이 있으면 알려주세요.
부탁합니다.
일단 조금 해봤는데
service를 받아와서 만든 클래스에서는 안되는거같더군요.
activity를 받아와서 한 클래스에서는 되는거같던데..

아무래도 다른 방법을 써야할거같네요.

더 찾아는 보고 있긴 한데 혹시 더 좋은 방법이 있으면 조언 부탁드리겠습니다.


그나저나...
일단 상태를 저장하는건 저장하는건데..
혹시 죽은 백그라운드 서비스를 다시 시작시키는 방법은 어떤것이 있을까요?
0 추천
onSaveInstanceState()

onRestoreInstanceState()

 

를 확인해보세요
SGLEE (1,690 포인트) 님이 2013년 5월 20일 답변
...