2014-12-21 5 views
-1

< 요약 >비 활동 클래스

에서 활동의 결과를 얻는 것은 비 활동 클래스에서 활동의 결과를 얻기의 우아한 방법이 있나요, 또는 항상 될 것입니다 해킹? 가능하다면 그 상황을 피하는 것이 더 낫지 않을까요?

< >

나는 일반적으로 사전 인증됩니다 웹 서비스를위한 세션의 인스턴스를 가지고 활동을 가지고는 (세션 키가 된 SharedPreferences에 저장됩니다)/요약. 그러나 처음 실행될 때 로그인 활동을 팝업하여 세션에 사용자 이름과 암호를 리턴 한 다음 세션을보고 세션 키를 얻습니다.

이상적으로는 비 활동 세션 클래스에서 startActivityForResult를 호출하고 싶지만 가능하지는 않습니다. 나는 그것을 할 수있는 방법에 대한 다양한 질문을 본 적이 :

How to get the result from OnActivityResult inside another class?(outside of the activity

use startActivityForResult from non-activity

그러나 그들은 모두 약간의 해키 보인다.

http://android-developers.blogspot.co.uk/2009/01/avoiding-memory-leaks.html

또 다른 옵션은 다음 된 SharedPreferences에 사용자 이름과 암호를 저장하고 다른 클래스를 검색 만하는 것입니다 : 나는 또한 라운드 컨텍스트를 전달하는 것은 어쨌든 좋은 생각이 아니라고 암시하는 본 적이 나는 그것이 구원 받았을 때 알아낼 수있는 어떤 방법을 가져야 만했을 것입니다. 그리고 그것은 모두 더러워지고있는 것처럼 보입니다.

또 다른 옵션은 세션을 표시하지 않는 활동으로 만드는 것입니다. 그래도 큰 오버 헤드처럼 보입니다.

내 프로젝트는 아직 계획 단계에 있으므로 최선을 다하고 있습니다. 가장 우아한 방법은 무엇입니까?

+0

요점을 적어주세요. 그것은 매우 기술적으로 보인다, 아무도이 모든 쓰레기를 읽을 것이다 !! –

+0

너무 많은 정보에 대한 찬성표는 다소 가혹한 것 같습니다. 아무도 부정적인 표시를함으로써 지금은 아무도 읽지 않을 것입니다. – spookypeanut

+0

내 친애하는 친구, 나는 당신의 질문을 downvoted하지 않은, 나는 일반적으로 질문을 downvote 그래서 내가 왜 그런 식으로 질문, 만약 내가 그때 내가 여기에 배치 한 한 의견을 쓰지 않아. 그래서 친애하는 친구, 나는 당신의 질문을 뉘우 치지 않았다. –

답변

0

이벤트 버스 (예 : Otto, GreenRobot)를 사용하여 활동의 결과를 비 활동으로 전달합니다.

+0

제안을 주셔서 감사합니다. 조사해 보겠습니다. 나의 초기 생각은 그들이 나의 세션을 활동으로 만드는 것보다 훨씬 더 큰 오버 헤드라는 것이다! 이벤트 버스가 필요할 때 앱에서 또 다른 포인트를 예상 할 수 없습니다. – spookypeanut

관련 문제