2010-03-21 3 views
1

어제 앱 결정이 완료 될 때와 화면 방향 변경을 위해 파괴 된 시점을 확인하는 질문을 올렸습니다. 받은 응답 덕분에 화면 방향 변경으로 문제점을 해결할 수있었습니다. 그러나 나는 아직도 장애물에 부딪치고있다. 이 앱은 HttpClient를 사용하여 웹 사이트에 로그인합니다. 앱이 메모리에 남아있는 한 HttpClient는 쿠키의 로그인을 유지합니다. 그러나 일단 쿠키가 삭제되면 다시 로그인해야합니다. 내 질문 : 응용 프로그램이 메모리에서 제거되었음을 알리는 부울 값을 false로 설정할 수 있도록 응용 프로그램이 메모리에서 종료 될 때를 어떻게 확인할 수 있습니까? 다음에 시작할 때이 값을 읽고 다시 로그인해야합니다. ? 또는 HttpClient를 serialize하여 savedInstanceState 번들에 넣을 수 있습니까? 클라이언트에서 쿠키를 추출하여 해당 쿠키를 savedInstanceState 번들에 넣을 수 있습니까? 내가 여기서 완전히 빠진 것이 있을까? 올바른 방향으로 어떤 도움이나 요령을 주시면 감사하겠습니다. 고맙습니다! 응용 프로그램이 는 그래서 그것을이 시작 다음이이 을 읽을 수 있도록 메모리에서 제거 된 응용 프로그램을 말하는 false로 부울을 설정할 수 있습니다 메모리에서 살해 될 때Android : 앱 완료 시점 결정

답변

1

어떻게 확인할 수 있습니다 그리고 다시 로그인해야한다는 것을 결정합니까?

IMHO, 잘못된 질문입니다.

올바른 질문은 "쿠키가 없어 졌음을 어떻게 알 수 있습니까?"입니다.

이것은 실질적인 비즈니스 문제 ("다시 로그인해야하는지 어떻게 알 수 있습니까?")와 유사한 입니다. 따라서 일부 시스템 이벤트가 유일한 것임을 가정하는 것보다 더 많은 모서리 및 코너 사건을 처리 할 것입니다. 쿠키 소스가 사라집니다.

HttpClient 개체를 사용하면 CookieStore에 액세스 할 수 있으며 쿠키를 반복하여 사용자의 쿠키가 있는지 확인할 수 있습니다. 틀림없이, 그러한 조회를 위해 클래스에 직접적인 메소드가 있다면 좋을 것입니다.

그래서 웹 응용 프로그램에 액세스하기 전에 쿠키가 있는지 확인하고 필요한 경우 로그인 대화 상자/액티비티/기타를 팝업하십시오.

또는 그것은 HttpClient를 직렬화하고 savedInstanceState 번들에 그것을 넣어 수 있습니까?

번호

는 클라이언트에서 쿠키를 추출하고 savedInstanceState에서 그 번들 넣을 수 있습니까?

예, 그렇다면 IIRC CookieStore에 악마가 돌아올 것입니다.

+0

CommonsWare, 감사합니다. 귀하의 조언이 가장 도움이되었습니다. 나는 그것이 지금 모두 정렬되어 있다고 생각한다. 일부 코드를 찾으면서이 질문을 실행하는 사람은 누구나 다음과 같이 생각해 봤습니다. (줄 바꿈이 부족할 수 있음) \t if (((AbstractHttpClient) httpClient).getCookieStore(). getCookies(). isEmpty()) { \t // 쿠키가 없습니다. 다시 로그인해야합니다 } else { \t // 쿠키가 있습니다. 다시 로그인 할 필요가 없음 } – Matt