2011-05-10 2 views
0

이것은 실제로 매우 간단합니다 : 역사 스택에 내 활동이 있는지 알아야합니까? 나는 다른 앱에 대해서, 내 자신의 앱에 대해서만 이야기하는 것이 아닙니다. 그리고 나는 그들이 무엇인지, 얼마나 많은지를 알 필요조차 없습니다. 나는 단지 그것이 있는지를 알아야합니다. 이것을 달성 할 수있는 방법이 있습니까? (ActivityManager.getRunningTasks().이 목적을위한 topActivity()는 없습니다.) 많은 브라우저에서 볼 수 있듯이 backward/forward 기능을 구현하고 있습니다. 처음에는 내 자신의 내역 스택을 관리하려고했지만 Android를 전혀 사용하지 않아서 매니 페스트의 모든 활동에 noHistory = true를 사용했기 때문에 다른 앱이나 실행기와 상호 작용할 때 앱의 동작이 이상하다고하는 문제가 발생했습니다. 이제 Android의 히스토리 스택 Backward 조작에 대해서는 내 자신의 Stack을 사용하지만 Foreward에 대해서는 내 자신의 스택을 사용합니다.하지만 문제가되지 않는 문제가 발생합니다 .... 앱에 보안 고려 사항이 있으므로 사용자가 모든 활동으로 돌아갈 수 없습니다. 파일이 잠겨 있습니다. 스택 전체를 제어해야합니다.기록 스택에 대한 읽기 권한이있는 방법이 있습니까?

안드로이드의 활동 라이프 사이클 모델과 며칠 동안의 역사 스택에 방해 받고있다. 매우 융통성이 없습니다. 어떻게 그들은 모든 응용 프로그램이 세계의 모든 활동이 그들이 실험실에서 상상했던 방식으로 행동한다고 ​​가정 할 수 있습니까 !!! ??? 많은 사람들이이 분야의 인터넷에서 질문을하는 것을 보았습니다. 모두들 막 다른 골목을 뚫은 다음 몇 가지 해결 방법을 찾거나 타협을 시도하거나 사양을 변경할 수도 있습니다. 안드로이드는 3 년 전부터 사용되어 왔지만 여전히 더 유연 해지기 위해 어떤 조치도 취하지 않았습니다. 나는 그것이 문제에 대해 알 수 있도록 첫날부터 디자인에서 매우 근본적인 것이어야한다고 생각하지만, 그것에 대해 아무 것도 할 수 없다. 틀린 디자인이라고 부르세요.)

(이 비 블로킹, 비 동기화 대화 상자/메시지 상자.이 디자인이 어떻게 나오는지 모르겠다. 사용자가 무엇인가를 확인하기를 원할 때마다 프로그램 흐름을 여러 부분으로 나눌 수 있습니다. 이것은 분명히 프로그램 작성을 어렵게 만들고 유지 관리를 어렵게 만듭니다! 다른 질문에 대한 일련의 질문이있는 경우 상태 시스템을 해제 할 수도 있습니다.)

+0

왜이 기능을 원하십니까? – ingsaurabh

+1

이 질문의 후반부를 잘라내어 블로그에 올려야합니다. – Brigham

+0

@Brigham, 죄송합니다. 저는 실제 Android 팬에게 불쾌감을주었습니다. – wwyt

답변

0

활동을 작성하고 완료하면 런타임에 스택에있는 내용을 알아야합니다. 일반적으로 스택을 꽤 잘 제어 할 수 있습니다. 스택 조작을 중심으로 회전하는 ApiDemo를 살펴보십시오.

+0

. 네,이 접근 방식에 대해 생각하고 있지만 다른 요인 때문에 "가장 확실한"방법은 스택에 어떤 활동이 있더라도 여전히 Android에 묻습니다. 그러나 이것이 불가능한 경우, 다른 방법은 없지만 Backs를 직접 추적하려고합니다. 다시 한 번 감사드립니다! – wwyt

+0

약간의 경험은 나에게 이것이 작동하지 않을 것이라고 말했어. - 히스토리를 저장하기 위해 영구적 인 스토리지를 사용하지 않는 한, 당신은 스스로 역사를 추적 할 수 없다. 앱에서 원하는 모든 과거 기록을 추적 할 수 있지만 프로세스가 종료되면 (예 : 메모리가 부족한 경우) 메모리가 손실됩니다. 그러나 안드로이드에게, 그 기억은 잃어 버리지 않습니다 - 그것의 스택은 여러분의 스택보다 오래갑니다. 따라서 앱이 종료 된 후 런처에서 앱이 다시 실행되면 스택에 기록이 없다고 생각했지만 실제로는 그럴 수 있습니다. 응답에 대해 – wwyt

2

SDK 레벨 11 이상 (허니컴 및 특정 진저 브레드 수준)의 조각을 사용하는 경우 명시 적으로 스택을 관리 할 수 ​​있습니다. 정기적 인 액티비티에서는 실제로 스택에 액세스 할 수 없으므로 운이 좋지 않습니다. 응용 프로그램 수준 스택을 사용하여 개인 스택을 구현할 수 있습니다. 즉, 활동을 시작하는 데 사용하는 Intent을 저장하면 앞으로 이동하고 각 활동에 대한 구성 데이터가 포함 된 다른 인 텐트를 반환 할 수 있습니다 (각 활동 finish()이 통과 할 때). 이 상태는 onActivityResult 콜백에 있음).

매우 혼란 스럽습니다.

+0

주셔서 감사합니다. 그러나 현재 SDK 11을 믿을 수는 없습니다. 팁을 주셔서 감사합니다. 적어도 다음 버전의 할 일 목록에 넣을 수 있기 때문입니다. 감사. – wwyt

+1

Google은 1.6으로 줄곧 그들을 지원하는 조각을위한 호환성 API를 발표했습니다. http://android-developers.blogspot.com/2011/03/fragments-for-all.html – Brigham

+0

예쁘다. – Femi

관련 문제