2012-09-02 2 views
0

I가 3 명 활동 : 활동 A, B 및 C 활동 A는 자신의 계정에 사용자가 로그인, 활동 B 대시 보드 내 로그인 활동 Activity C에 ListView가 있습니다.수없는

Android 휴대 전화의 경우 : 휴대 전화의 홈 버튼을 누르면 휴대 전화의 홈 화면으로 이동하고 앱을 다시 시작하려고 할 때보 다 활동으로 이동합니다. 처음에 떠난 활동 C 대신에. 에뮬레이터에

: 내가이 활동 C. 나를 소요 다시 응용 프로그램을 시작하려고하면 활동 C에 메신저 내 휴대 전화와보다 홈 버튼을 누를 때 나는 또한 각 활동에 대한 설정을 onResume이

단지 활동이 재개 될 때 전화가 인터넷에 액세스 할 수 있는지 확인하십시오. 이제 문제는 내가 에뮬레이터를 사용하는 것과 똑같은 동작을 휴대폰에서 얻지 못하는 이유를 이해하지 못한다는 것입니다.

내가 C를 떠난 곳의 C에서 앱을 시작하고 싶습니다. 나는 에뮬레이터에서 메신저와 동일한 동작을 원합니다.

또한 에뮬레이터에서 오류 또는 충돌이 발생하지 않습니다. 문제를 추적하기가 어렵습니다.

제발 내가해야 할 일에 대해 안내하거나 문제가 무엇인지 말해주십시오.

감사합니다 !!

+1

당신이 로그인 정보를 저장하고 [데이터 저장 가이드]에 기술 된 방법 (http://developer.android에 아마 (위치를 지속합니다. co.kr/guide/topics/data/data-storage.html)) 작업 A를 건너 뛰고 기기의 전원을 끈 후에도 사용자가 중단 한 부분부터 다시 시작할 수 있습니다. – Sam

+0

@Sam 응답을 보내 주셔서 감사합니다. 내부 데이터베이스에 로그인 정보를 저장하고 있습니다.하지만별로 도움이되지 않습니다. – Viking

+0

위대한,하지만 그것은별로 도움이되지 않습니다? Activity A의 onCreate()에서 로그인이 있는지 확인해야합니다. 그렇다면 즉시 B를 시작하거나 사용 된 마지막 활동을 복원하십시오 (이 정보도 저장 한 경우). – Sam

답변

1

Eclipse를 사용하여 앱을 실행하지 않는다는 점에 관해서 - 다른 해결책을 소개하고자합니다.

은 매니페스트에서 활동 태그의 다음 키에서 봐 주시기 바랍니다 : android:alwaysRetainTaskState http://developer.android.com/guide/topics/manifest/activity-element.html#always

문서에 따르면, 그것의 기본 값은 false입니다. task-root 활동 (귀하의 경우 Launcher에서 true)으로 설정하면 시스템이 작업 상태를 항상 유지하고 재설정하지 못하도록합니다. 그래서 프로세스가 종료 될 때에도 - 다시 실행 한 후에는 최신 작업 상태로 나타나야합니다. 당신은 작업의 루트를 지정할 것

  1. 경우이 방법이 엉망이 될 것이기 때문에

    그러나,주의해야합니다.

  2. 응용 프로그램 내에서 의도에 대해 작업 조작 플래그를 사용하는 경우. 예를 FLAG_ACTIVITY_CLEAR_TASK/FLAG_ACTIVITY_CLEAR_TOP/등

행운

+0

답장을 보내 주셔서 감사합니다. FLAG_ACTIVITY_CLEAR_TOP을 (를) 사용하고있어이 작업을 수행 할 수 없습니다. S – Viking

+1

죄송합니다. Clear_Top을 사용하면 여전히 작업의 루트로 변경되지 않습니다. 그렇다면 접근 방법을 계속 사용할 수 있습니다. 효과가 있다면 시도해 볼 수 있습니다. – AlexN

+0

감사합니다 :) – Viking

0

이클립스 ADT 플러그인을 사용하는 사용자에 따라 Eclipse에서 애플리케이션을 시작하기 때문에 전화 동작이 잘못 될 수 있습니다. "adb install your_app.apk"을 시도하고 화면에서 수동으로 시작하면 문제를 해결할 수 있습니다.

일반적으로 설명한 동작은 의도 된 동작이므로 의도 된 플래그 및 매니페스트 문에 의해 중단되지 않으면 시스템은 원하는대로 동작해야하며 마지막 동작과 상태를 복원해야합니다.

행운

+0

응답 해 주셔서 감사합니다 .i 수동으로 휴대 전화에 앱을 설치하고 거기에서 직접 실행했습니다. Eclipse를 통해 앱을 실행하지 않습니다. 자세히 설명해 주실 수 있습니다. 4 월 및 5 라인. – Viking

+0

세부 정보를 보내 주셔서 고맙습니다. 상태 유지에 대한 새로운 답변을 찾으십시오. – AlexN

1

음, 행동은 모두 정상입니다. 그리고 여기에 무슨 일이 일어나고있는거야 : "활동 C"에서 홈 버튼을 누르면 OS가 안드로이드 홈 화면으로 이동 한 다음 운영 체제로 이동하여 활동을 파괴할지 ​​또는 유지할지 결정합니다 (자원에 따라 다름). OS 필요).

에뮬레이터에서는 OS가 "활동 C"를 파괴하지 않도록 실행중인 다른 활동이 없거나 거의 없을 수 있습니다. 그리고 응용 프로그램을 다시 시작할 때 여전히 거기에있는 "활동 C"로 이동합니다.

에뮬레이터와 달리 장치는 많은 다른 응용 프로그램과 서비스를 실행해야하며 원활하게 실행되도록 자원을 필요로하므로 활동 OS를 종료하면 해당 활동이 파괴되고 해당 응용 프로그램에 제공된 자원이 청구됩니다 . 그래서 응용 프로그램을 시작할 때 응용 프로그램을 다시 만들거나 응용 프로그램을 다시 시작합니다.이 경우 "활동 A"입니다.

따라서 거의 정상적인 동작이므로 걱정할 필요가 있습니다.

자세한 내용은 this을 참조하십시오.

+0

답장을 보내 주셔서 감사합니다.이 문제를 해결할 수있는 해결책을 제안 해주십시오. – Viking

+1

첫째로, 나는 그것을 문제로 보지 않으며 둘째로 그것을 성취 할 수있는 것이 있다면 두 번째로 나는 정말로 의심 스럽다. https://groups.google.com/forum/?fromgroups=#!topic/android-developers/OMWPwVYt2aI에서 확인할 수 있습니다. – Sayyam

+0

"활동 A"와 "활동 B"는 무엇을합니까? 응답을 주셔서 감사합니다. – Sayyam