저는 앱 구조와 함께 오래 동안 고심하고 있습니다. 그리고 정말이 구조가 다른 기능을 개발하는 데 많은 고통을주고있는 것처럼 보입니다. 그래서 더 나아 가기 전에 나는 약간의 충고를하고 싶습니다. 그리고 제가 여기서 잘못된 것을하고 있는지보십시오.AccountManager를 통한 앱 흐름
내 응용 프로그램의 목적은 서버에 연결하는 것입니다. AccountManager 메커니즘을 사용하여 장치에서 계정을 만들고 서버에서 데이터를 요청하는 데 사용되는 토큰을 저장합니다. 계정을 만들면 모든 것이 잘됩니다. 그것은 이렇게 가고
- (그것은 장치 설정에서뿐만 아니라 작동> 계정을 추가) :
MainActivity 당신이 응용 프로그램을 실행할 때 계정이 있는지 확인, 활동이다. 계정이있는 경우 MainActivity의 모든 조각이 액세스 할 수 있도록 토큰을 정적 변수로 가져옵니다. (작동하지는 않지만 작동하지는 않습니다.) 그렇지 않으면 LoginActivity로 인 텐트를 만들어 장치에서 계정을 만듭니다. 문제는 AccountManager.getAuthToken()을 사용하여 스레드에서 토큰을 복구 할 때 조각이이 토큰이 복구되기 전에 만들어 지므로 내 조각에서이 토큰을 가져올 수 없다는 것입니다. 그리고 따라서 내 서버에서 데이터를 요청할 수 없습니다.
내 앱 구조가 그리 좋지 않을 수도 있다고 생각하게되었습니다. 그래서 생각하고 있었는데, "내가 그렇게한다면 어쩌지?" :
- 사용자 계정을 확인하고 장치에 계정이 있다면 토큰을 얻을하지만 현재 버전과 같은보기의 모든 종류를 생성하지 않는 부트 스트랩 같은 응용 프로그램
- MainActivity 행위를 시작합니다.
- MainActivity 중 하나 LoginActivity 또는 ContentActivity로 리디렉션
그런 식으로 나를 MainActivity가 토큰을 것이라고 생각 할 수 있습니다 (의 그런 식으로 호출 내의 ListView에 데이터를 채울 내 토큰을 사용하기로했다 활동을하자) 패스하지만 UX의 측면에서 이상적이라고 확신하지는 않습니다. (콘텐츠에 액세스하기 전에 토큰을 기다려야 함). 정말 고생 했으므로이 시점에서 모든 제안에 대해 개방적입니다.
감사합니다.
업데이트 1 :
그것은 같은 관리자를 처리보다 로그인/등록 애플리케이션 로직의 더. 나는 그 (것)들을 일하기 위하여 처리했다 그러나 나는 진짜로 "제일 연습"app 논리 구조로 고투한다 그래서 나는 그것으로 많은 다른 문제로 달리지 않는다 (나가 진짜로 시간이 있지 않기 때문에). 내가 필요한 것은 위의 설명처럼 내 애플 리케이션을 작동시키는 "모범 사례"예제를 보여주는 다이어그램 또는 뭔가입니다. 또한 MainActivity를 시작할 때 계정을 확인하고 LoginActivity를 시작하지 않으면 다시 누르면 MainActivity (채워지지 않음)가 표시 될 수 있기 때문에 문제가 발생했습니다.
이 구조가 완전히 허용 및 서버 종속 응용 프로그램의 정상적인 흐름입니다 : 일반적인 연습
완전히 오픈 소스 인 Last.fm 응용 프로그램을 살펴했고 그는 직접 "로그인"활동에 파견 그런 종류의 작업을 수행합니다. 사용자가 앱 위젯을 구성 할 때 또는 앱을 시작한 순간에 사용자가 '계정 추가'설정에서 왔을 때이 활동이 사용되기 때문에 그는 실제로 많은 행동 (예 : 의도 액션)을 확인합니다. 그것이 그렇게 할 수있는 좋은 방법이 될 수 있다고 생각합니까? (여기에 활동 코드 https://github.com/c99koder/lastfm-android/blob/master/app/src/fm/last/android/LastFm.java 링크가 있습니다. SplashScreen을 피하고 싶습니다. UX에 좋지 않다고 생각해. – CinetiK
좋다. 예. 만약 하나가 주장한다면, 하나의 활동이 모든 것에 사용될 수 있습니다. –
고마워, 너 정말 이걸 도와 줬어! 나는 지금 그것을 일하게 만들었다. – CinetiK