2010-08-18 4 views
1

나는 백그라운드에서 항상 실행되는 Gps 기반 응용 프로그램에서 작업 중입니다. 하지만 극단적 인 메모리 부족 (또는 내가 많은 애플 리케이션을 열 때) 내 애플 리케이션은 안드로이드 시스템에 의해 살해 당한다.내 앱을 죽일 때를 어떻게 알 수 있습니까?

나는 안드로이드 시스템에 의해 살해되었을 때 내 앱을 다시 시작하고 싶다. 나는 이것을 위해 구글을 찾았지만 어떤 해결책도 얻지 못했다. 아무 도움이 되겠지.

감사

+5

안드로이드 애플 리케이션을 죽일거야? : -O 나는이 가제트를 결코 사지 않을 것이다! –

+2

당신을위한 +1과 매우 나쁜 제목 : ... D – Shouvik

답변

0

들의 OnDestroy() 함수가 호출 될 때 응용 프로그램의 새 인스턴스를 시작 시도 할 수 있습니다. 예 :

@Override 
public void onDestroy() { 
    Intent intent = new Intent(Thisclass.this, Thisclass.class); 
    Thisclass.this.startActivity(intent); 
    super.onDestroy(); 
} 
+2

나쁜 생각! 이것은 무한 루프를 만들 수 있습니다! – WarrenFaith

+0

그가 앱을 정말로 끝내고 싶다면 어떨까요? 종료하려면 작업 관리자가 필요합니다! – Shouvik

+1

오, 그래, 사실이야, 미안해! :) 사용자가 종료하고 해당 메소드에서 확인하고 가능하면 재 실행을 생략하려고 할 때 부울을 설정하면이 문제를 피할 수 있습니다. WarrenFaith가 아래에서 언급 한 것처럼 서비스가 더 나은 솔루션처럼 보일 것입니다. – onik

2

서비스 내부에서 GPS 로직을 수행 했습니까? 이 서비스는 살해 될 마지막 물건 중 하나이며 대부분이 필요한 메모리를 확보하기 위해 살해되어야하기 때문입니다.

아마 사용자가 통보 및 알림을 클릭하여 손으로 응용 프로그램을 다시 시작할 수 있도록 알림을 만들어야합니다 서비스 ...

+0

답장 덕택에, 나는 내 활동에서 논리를하지 못했습니다. 모든 것이 훌륭합니다. 내가 알고 싶은 것은 "앱이 죽을 때 어떤 메소드가 호출되는지"입니다. 나는 onLowMemory()를 시도했지만 그 경우에는 호출되지 않는다 .. – user320676

+0

앱이 멈출 때 가장 마지막에 호출 된 메소드는'onDestroy()'이다. 나는 여전히이 경우에 작업 관리자 app 앱을 죽인다. – WarrenFaith

+0

안녕 친구 나는이 알람 서비스를 사용했습니다. 생각을 공유해 주셔서 감사합니다. – user320676

1

당신이 Activity Lifecycle 플로우 차트 봤어? 다른 애플리케이션에 메모리가 필요한 경우 onPause()는 앱이 중지되거나 종료되기 전에 마지막으로 보장되는 것입니다. 그래서 당신이 알리미 (@WarrenFaith가 말했듯이) 또는 잠재적으로 당신의 앱을 되 살릴 수 있거나 최소한 사용자에게 ping을 시켜서 그것을 되 살릴 수있는 또 다른 메커니즘이 필요할 것입니다.

0

어쩌면 사용자가 인 텐트를 사용하고,이 애플리케이션이 android에서 살해 될 때 토큰을 다른 청취자에게 보낼 수 있으므로 다른 서비스가이 활동을 시작할 수 있습니다.

어떻게 이것이 루프가되지 않을지 알 수는 없지만. 당신이 앱을 끝내는 방식은 안드로이드가 앱을 끝내는 방식과 매우 유사합니다! 그래서 나는 앱을 끝내려고 시도 할 때 무한히 반복 할 것이라고 확신합니다. 멀웨어처럼 대단히 행동합니다!

관련 문제