2013-07-17 2 views
1

로그인 화면이 있고 다른 화면 (다른 활동)으로 이동하는 앱이 있으며 전체에서 세션을 유지해야합니다.Android에서는 여러 활동을 통해 세션을 유지 관리하는 것이 가장 좋습니다.

나는 둘러 보았고 몇 가지 방법을 찾았지만 대부분 여러 활동을 고려하지 않았습니다.

나는 httpclient를 사용하여 하나를 찾았지만 오래되었지만 최신 장치에는 HttpURLConnection을 사용하는 것이 좋습니다.

그래서 어느 것이고 사용법이 확실하지 않습니다. 다른 모든 활동은 하나의 활동에서 비롯되었으므로 로그인 페이지에 대한 모든 하위 활동을 만들고 MainActivity.session (또는 그것이 무엇이든지간에)을 통해 세션을 참조하게하려고 생각했습니다.

어떤 조언이 필요합니까?

+0

어떤 종류의 "세션"입니까? 웹 서버가 보낸 세션 쿠키를 언급하고 있습니까? – CommonsWare

+0

예, 서버에서 제공 한 쿠키를 유지해야합니다. – user2312638

답변

1

세션 쿠키는 일반적으로 사용중인 HTTP 스택에 의해 유지 관리됩니다. 활동이 반드시 역할을 수행하지는 않습니다.

CookieManager cookieManager = new CookieManager(); 
CookieHandler.setDefault(cookieManager); 

다음에, 당신의 HTTP 작업이 무엇인지 활동이 중요하지 않습니다 : 당신이 the documentation for HttpUrlConnection은 "쿠키와 세션"읽기 예를 들어

이 부분은 어떻게 앱 쿠키 관리자를 설정하는 방법을 보여줍니다 done - 프로세스가 시작된 이후 다른 작업의 모든 관련 쿠키가 후속 요청에 포함됩니다.

+0

감사합니다. 이제 httpclient와 비슷한 것이 있는지 궁금합니다. – user2312638

+0

@ user2312638 :이를 위해서는 'HttpClient'(예 : AndroidHttpClient)의 선택한 구현의 싱글 톤 인스턴스가 필요합니다. 동일한 'HttpClient' 인스턴스로 이루어진 모든 요청은 기본적으로 쿠키를 공유합니다. 이것은 HttpClient가 기본적으로 쓰레드에 안전하지 않기 때문에 복잡해 지므로'ThreadSafeClientConnectionManger'를 사용해야한다. – CommonsWare

+0

어쨌든 그 두 줄을 어디에 설정합니까? 연결 후 처음에? – user2312638

관련 문제