1

다른 매개 변수를 사용하여 동일한 (ExpandbleList-)activity의 여러 인스턴스를 시작하려고하므로 다른 데이터가 목록에로드됩니다. 이 목록은 TabActivity의 다른 탭에 있습니다.활동의 여러 인스턴스를 만드는 방법은 무엇입니까? - revisited

지금까지는 작동했지만 한 목록의 정보를 업데이트 한 다음 두 번째 목록으로 돌아가서 항목 중 하나를 클릭하거나 화면 방향을 변경하면이 목록에 다른 목록의 데이터가 다시 채워집니다.

서로의 데이터를 방해하지 않도록 활동을 시작할 수 있습니까?

+0

P. 리스트 내용을 가진 배열이 시작될 때 어떤 매개 변수가 사용되었는지 항상 확인해 볼 수는 있지만 가장 좋은 방법은 아닙니다. – Kasium

답변

3

기본적으로 각 활동은 새로운 인스턴스가됩니다. 이 활동의 ​​매니페스트에서 실수로 "싱글 탑"을 설정 했습니까? 정적이 아니어야하는 활동에 정적 (공유, 공유) 멤버를 설정 했습니까? "다른"활동의 성격을 어떻게 인스턴스화할까요? 의도에 엑스트라를 주는가?

+0

그래서 Manifest에서 단일 최상위를 설정하지는 않았지만 다른 액티비티에서 데이터를 가져 오는 데 사용 된 요청 항목과 목록 항목이있는 배열을 포함하여 내 액티비티에 일부 정적 멤버가있었습니다. 나는 이제 이것들을 변경하여 더 이상 정적이 아니며 ExpandableListViewAdapter가 배열의 복사본을 가져옵니다. 또한 요청 코드가 각 유형의 사용에 따라 다르므로 실수로 서로 다른 결과를 얻지 않도록해야합니다. 그리고 이제는 작동합니다! 정말 고마워요! P. 네, 다양한 "인격"을 인스턴스화하기 위해 인 텐트를 사용했습니다. – Kasium

0

활동이 새 인스턴스가 아니므로 다시 시작 및 일시 중지 방법이 있습니다. 나는 방송 수신기에 의해 시작된 서비스로부터 새로운 인 텐트를 시작하려고 노력했다. 메인/UI 스레드와 완전히 다른 스레드. 이미 사용자가 실행하지 않았다면 잘 작동합니다. 그런 다음 Intent.FLAG_ACTIVITY_NEW_TASK 플래그가있는 경우에도 새 인 텐트를 만들기 위해 다음 오류가 발생했습니다. android.view.ViewRoot $ CalledFromWrongThreadException : 뷰 계층을 생성 한 원래 스레드 만 해당 뷰를 터치 할 수 있습니다.