2014-10-23 2 views
2

서버 연결과 GPS의 위치 업데이트가 필요한 앱을 만들고 있습니다. 그리고 앱을 도로에서 사용해야합니다. 인터넷 연결 또는 서버의 예기치 않은 데이터로 인해 응용 프로그램이 손상 될 확률을 최소화하려고 시도했지만 아직 충돌 가능성이 있습니다. 이제 내가하고 싶은 것은 이전 상태로 다시 시작할 때 응용 프로그램을 복원하는 것입니다. 따라서 충돌 전에 상태를 저장해야합니다.충돌하기 전에 앱의 상태를 저장하십시오.

이제 더 좋은 방법은 무엇일까요?

나는 onDestroy를 시도했지만 응용 프로그램이 중단 될 때마다 호출되지 않습니다.

어떻게하면됩니까?

탁신 사전.

+2

충돌에 대한 콜백이 없습니다. @Nabin의 조언을 따르십시오. –

답변

2

앱의 작동 방식, 저장하려는 정보의 종류에 따라 다릅니다.

반복적으로 선호 공유 (체크 포인트 등) 할 때 응용 프로그램 충돌에 값을 저장하고 응용 프로그램은 당신이 선호 물론

+1

나는 그것을 일찍 시도했지만 더 좋은 다른 방법이 있는지 알고 싶었다. 하지만 고마워, 어떤 방법으로,에 대한 답변. – Massab

-1

가 충돌하지 않고 응용 프로그램을 만들기의 가장 좋은 방법의 값을 가져올 수 있습니다 다시 시작하고, 경우 앱에 연결 문제가있어 사용자에게 알립니다.

try 
    { 
    // some logic with internet connection 
    } 
    catch (Exception e) 
    { 
    // here you can save your current progress or some data to database or to shared  preferences 
    } 
+0

어떻게 생각하세요? try catch를 사용하는 것이 결코 좋은 생각이 아닙니다. – Nabin

+0

나는 try-catch가 최선의 방법이 아니라는 것을 알고있다. 가장 좋은 방법은 문제없이 작동해야하는 수정 프로그램입니다. 그러나 매사브가 말했듯이 "충돌 할 기회가있다"는 말은 충돌이 일어 났을 때 어떻게 든 처리해야한다는 것입니다. – Vito

+0

@ user1652236 이미 예외 처리를 수행했지만 여전히 "잘못된 데이터"와 같은 기회가있을 수 있으므로 응용 프로그램을 중단시킬 수 있습니다. – Massab

2

Google says : 어디 충돌을 알고있는 경우 그러나 당신이 그런 일을 할 수있는 일이

[..] 당신은 사용자 편집 같은 지속적인 데이터를 (쓸 onPause() 방법을 사용한다)을 저장 장치에 저장하십시오. 이 라이프 사이클 콜백이 응용 프로그램이나 활동의 프로세스가 OS에 의해 살해 될 경우, 호출이 보장되기 때문에

데이터를 유지해야하는 경우

onPause()에서 그것을 할.

+0

OS에 의해 종료 될 때 앱이 충돌하는지 또는 앱 설정으로 강제 중지 된 것처럼 onPause가 확실히 호출됩니까? – Massab

+0

글쎄, 그것을보십시오;) –

+0

좋아, 고맙다 친애하는 :) – Massab

관련 문제