1

나는 레이아웃 (배치 1)을 팽창하고 사용자를 할 수 있습니다 응용 프로그램 (APPA)가 그 전에 물건을 사용자가 appB가 startActivityForResult안드로이드에 의해 살해 된 후 내 응용 프로그램으로 돌아 가기를 시뮬레이션하는 방법이 있습니까?

통해 다른 응용 프로그램 (appB를) 시작되는 또 다른 (배치 2)와 그 레이아웃을 대체 할 장치의 메모리/프로세싱 성능의 한계에 부과하는 결과를 초래하는 Unity3D 기반의 괴물은 appA가 백그라운드에있는 동안 Android에 의해 자주 정리됩니다.

appB가 완료되면 Android가 appA를 다시 작성하지만 혼동을 일으 킵니다.

즉 : onCreate를 호출하지만 appA로 시작하여 여전히 layout2를 표시합니다.이 레이아웃은 appB로 이동하기 직전에 부풀린 레이아웃입니다.

onCreate가 모든 변수를 다시 초기화하고 처음부터 시작한 것처럼 보이지만 어떻게 든 layout2를 표시하는 상태를 유지하기 때문에 혼란 스럽습니다.

이것은 appB를 시작한 후 appB에서 finishA를 호출 한 다음 appB가 처음부터 appA를 시작하여 layout1을 처음부터 팽창 시켰을 때와 다를 행동입니다.

제 문제는이 동작이 일관성이 없다는 것입니다. 안드로이드가 appA 메모리 공간을 필요로하지 않고 appB를 관리하고 디버깅하는 데 많은 시간이 걸린다.

appB의 Android 클린업을 유발하는 몇 가지 수동 방법 (Android Studio 또는 코드를 통해)이 있다면 돌아 오는 부작용을보고 테스트 할 수 있는지 궁금합니다. 안드로이드에 의해 다시 살아났다가 appA에 도착했다. 내가 그렇게 발견했습니다

+0

http://stackoverflow.com/questions/22400859/dont-keep-activities-what-is-it-for –

답변

1

몇 가지 수동 방법이 있는지 궁금 해요 ...

예, 있습니다.

appA 프로세스를 명령 줄 도구 또는 IDE를 사용하여 백그라운드에서 종료해야합니다.

다른 개발자의 연구를 복제하지 않고 나는 How to simulate Android killing my process으로 전화를합니다.

1

가장 편리한 방법은 하나 개의 활동으로 별도의 응용 프로그램을 작성하는 사실이며, onResume()에서 다음을 수행 : 나는에 의해 살해되고 내 응용 프로그램을 시뮬레이션 할 때마다

@Override 
protected void onResume() { 
    super.onResume(); 

    ActivityManager activityManager = 
      (ActivityManager) getSystemService(ACTIVITY_SERVICE); 

    activityManager.killBackgroundProcesses("your.app.id"); 
} 

을 안드로이드 난 그냥이 애플 리케이션으로 전환하고 다시 테스트로 이동합니다.

관련 문제