문제

응용 프로그램이 시작되면 원격 서비스에 바인딩하는 Android 응용 프로그램이 있습니다. 원격 서비스는 블루투스 비디오 카메라에 추상화를 제공하므로 명령을 보낼 수 있고 쉽게 이벤트를받을 수 있습니다. 바인딩은 Application와는 반대로 Activity 자체에서 발생합니다. Bluetooth와의 카메라 연결이 활성화되어 있으므로 원격 서비스에서 이벤트를받을 수 있습니다. 주된 이유는 내가 녹음하는지 여부를 알 필요가 있거나 그렇지 않으면 주기적으로 GPS 좌표를 보내야한다는 것입니다.

내 응용 프로그램이 내 응용 프로그램 내에서 서비스를 사용하여 서비스를 사용하여 서비스를 사용하는 경우 나의 응용 프로그램이 살해되지 않을 것입니다. 또는 내 응용 프로그램이 원격 서비스에 묶여 있기 때문에 내 응용 프로그램이 살해되지 않기 때문에 안전합니까? 물론, 나는 메모리 요구 사항이 필요하다면 안드로이드 시스템이 내 앱을 죽일 것이지만 잠시 동안 많이 앉아 있지 않기 때문에 앱을 죽일 것입니다.

도움이 되었습니까?

해결책

메모리가 부족한 경우 응용 프로그램의 프로세스 만 제거해야하지만 빈 프로세스 또는 배경 활동이 아닌 서비스를 사용하는 경우 프로세스의 중요성을 높일 수 있습니다. StartForeground ()를 사용하여 Android가 서비스를 중지 할 가능성이 적게 할 수 있습니다.

http://developer.android.com/reference/android. /asp/activity.html#ProcessLifecycle :

공정 수명주기

Android 시스템은 가능한 한 응용 프로그램 프로세스를 유지하려고 시도하지만 결국 메모리가 낮을 때 이전 프로세스를 제거해야합니다. 활동 수명주기에 설명 된 바와 같이, 제거하는 프로세스에 대한 결정은 사용자의 상호 작용 상태에 밀접하게 연결됩니다. 일반적으로 여기에서 실행되는 활동에 기반하여 프로세스가 중요한 순서대로 나열됩니다. 시스템은 더 중요한 프로세스 (첫 번째 프로그램)를 죽이기 위해 리조트하기 전에 덜 중요한 프로세스 (마지막 것)를 죽일 것입니다.

  1. 전경 활동 (사용자가 현재 상호 작용하는 화면 상단의 활동)은 가장 중요한 것으로 간주됩니다. 그 과정은 장치에서 사용 가능한 것보다 더 많은 메모리를 사용하는 경우에만 최후의 수단으로 만 살해됩니다. 일반적 으로이 시점에서 장치는 메모리 페이징 상태에 도달하므로 사용자 인터페이스를 반응시키는 데 필요한 경우가 필요합니다.
  2. 활동 (전경 대화 뒤에 앉아있는 것과 같은 전경에서는 사용자에게 가시적이지는 않지만 전경에서는하지만 전경에 있지는 않지만 전경에서는하지만 전경에서는하지만 전경에서는 전경에서는 전경에 있지 않음)이 매우 중요합니다. 전경 활동을 계속 실행하려면
  3. 배경 활동 (사용자가 볼 수없고 일시 중지 된 활동)은 더 이상 중요하지 않으므로 시스템은 다른 전경이나 가시적 인 프로세스에 대한 기억을 회수하기 위해 프로세스를 안전하게 죽일 수 있습니다. ...에 프로세스를 살해 해야하는 경우 사용자가 활동으로 다시 탐색 할 때 (화면에서 볼 수있게 만드는), OnCreate (Bundle) 메서드는 이전에 OnSaveInStanceState (Bundle)에서 이전에 제공된 SavedInStanceState (번들)로 호출됩니다. 마지막으로 사용자가 왼쪽으로 사용자와 동일한 상태로 다시 시작할 수 있습니다.
  4. 빈 프로세스 은 활동이나 다른 응용 프로그램 구성 요소 (예 : 서비스 또는 브로드 캐스터 클래스)를 호스팅하지 않습니다. 이는 메모리가 낮아지면 시스템이 매우 빠르게 사망합니다. 이러한 이유로 활동 외부에서 수행하는 모든 백그라운드 작업은 활동 브로드 카스터리버 또는 서비스의 컨텍스트에서 시스템이 프로세스를 유지 해야하는 데 필요한 것을 알고 있는지 확인해야합니다.
  5. 때로는 활동 수명주기 자체와 독립적으로 존재하는 장기 실행 작업을 수행해야 할 수도 있습니다. 예제는 웹 사이트에 그림을 업로드 할 수있는 카메라 응용 프로그램 일 수 있습니다. 업로드는 시간이 오래 걸릴 수 있으며 응용 프로그램에서 사용자가 응용 프로그램을 실행할 수 있도록 허용해야합니다. 이를 수행하려면 업로드가 수행되는 서비스를 시작해야합니다. 이를 통해 시스템은 원래 활동이 일시 중지되었는지, 중지됨 또는 완료되었는지 여부와 관계없이 업로드 기간 동안 업로드 지속 시간 동안 프로세스의 프로세스를 올바르게 우선 순위를 올리십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top