2011-08-12 8 views
0

안드로이드 애플 리케이션 Stackoverflow 오류 난 그냥 두 가지 활동 즉, A와 B 사이에 실행 중입니다. 그는 A에서 B로 다음 B에서 A로 전환하고 다시 A에서 B로 누른 다음 B에서 A로 간다.안드로이드 애플 리케이션에서

이러한 활동에는 모두 목록보기가 있습니다. 사용자가 들어오고 나갈 때마다 데이터베이스에 저장된 일부 데이터를 추가하고 있습니다. 이러한 데이터는 rss 피드에서 검색되며, 수시로 매우 높은 수를 사용합니다. 이 때문에 거의 흐름 오류 오버 스택을 가져 오는 중입니다.

우선 상대 레이아웃으로 레이아웃을 디자인했으며 상대 목록에 내 목록보기를 배치했습니다. 여기에 답이 있는데,이 오류는 상대 레이아웃 때문일 수 있습니다. 그래서 모든 레이아웃을 선형 레이아웃으로 변경했지만 여전히 오류가 발생하고 있습니다.

는 현재 작업의 스택의 상단에 밀려 새로운 활동을 시작할 때이 문제

+1

은 어느 부분이 스택 오버 플로우를 발생시키는 지 알 필요가 있습니다. 어쩌면 여기에 Exception-Log를 게시하십시오. 또한 소스 코드의 관련 부분이 당신에게 실질적인 힌트를 제공하는 데 필요합니다. – berlindev

+0

두 가지 액티비티를 사용하는 경우, (A)를 다시 시작할 때 단일 액티비티를 완료하거나 이전 액티비티 (A)를 완료해야합니다. – Blundell

답변

3

을 극복하는 방법에 대해 설명합니다. 아래 그림과 같이

                |-> B - StackOverflow 
    | |     | |    |A|     |A| 
    | |     |B|    |B|     |B| 
    |A|     |A|    |A|     |A| 
    ```     ```    ```     ``` 
Before launching After launching After launching  Trying to launch 
activity B   activity B   activity A   activity B 

결국 결국 스택 오버 플로우 오류가 발생하는 작업 스택의 공간이 부족합니다.

intent flags 중 일부를 사용하여 스택 기록을 지우는 것이 좋습니다. 귀하가 제공 한 데이터로부터 플래그가 도움이되어야한다고 생각합니다 - FLAG_ACTIVITY_NO_HISTORY. 그러나 원하는 동작인지 확인해야합니다. 나머지 동작 플래그를 살펴보고 응용 프로그램에 적합한 올바른 플래그를 선택하십시오.

+0

감사합니다 ... FLAG_ACTIVITY_CLEAR_TOP을 사용하여 문제를 해결했습니다. –

관련 문제