2013-11-21 1 views
0

나는 A 활동이 있습니다. A에서 나는 B 활동을 시작합니다. 활동에서 B 나는 많은 메모리를 사용하고 때로는 OOM이 나옵니다. 이 문제를 해결하기 위해 노력하고 있지만 그 동안 사용자를위한 몇 가지 정보를 보여 드리고자합니다.OOM 이후 활동

OOM은 대부분 내 앱을 중단시키지 않습니다. 그냥 활동 B을 닫고 A을 다시 시작합니다. A에서 감지 할 수 있습니까? B이 제대로 완료되지 않았습니까?

B뿐만 아니라 많은 다른 활동에서 A으로 돌아갈 수 있습니다.

A (b_started, b_finished, b_sth)에 일부 플래그를 설정하고 싶지 않습니다. 존재한다면 깨끗하고 간단한 해결책을 원합니다.

답변

2

예, 당신은 다음과 같은 방식으로이 문제를 처리 할 수 ​​있다고 생각 :

1) 활동을 시작 할 때마다, 에 startActivityForResult (의도, requestCode가)를 사용; 여기 활동 B.

2) 활동 (B)가 폐쇄 될 때마다 지금, 당신은 보호 무효하여 onActivityResult에서 A의 콜백을 얻을 것이다 (INT requestCode가, INT의 resultCode, 의도에 고유 요청 코드를 통과 데이터) 여기 요청 코드가 활동 B를 시작하는 데 사용한 코드와 유사한 지 확인하십시오.

3) 마지막 문제는 활동 B가 성공적으로 닫혔는지 여부입니다. 당신은 resultCode를 사용할 수 있습니다. 의도적으로 활동을 닫을 때 성공으로 설정하십시오. 그렇지 않으면 성공하지 못할 수 있습니다.

도움이 되었기를 바랍니다.