私はアプリの構造をしばらく苦労してきました。そして、それは本当にこの構造のように私に他の機能の開発に多くの痛みを与えるようです。だから私はいくつかのアドバイスをして、私がここで何か間違っているかどうかを見たいと思う。AccountManagerを使用したアプリケーションフロー
私のアプリの目的はサーバーに接続することです。私はAccountManagerメカニズムを使ってデバイス上にアカウントを作成し、サーバーからデータを要求するために使用されるはずのトークンを保存します。アカウントの作成では、すべてが問題ありません。 (これは、デバイスの設定から、同様に動作 - >アカウントを追加)
それはこのように書き:
MainActivityは、あなたがアカウントを持っているかどうかを確認、アプリを起動し、活動です。 アカウントをお持ちの場合は、MainActivityのすべてのフラグメントにアクセスできるように、トークンを静的変数に入れます。 (動作するはずですが) それ以外の場合は、LoginActivityでインテントを作成して、デバイス上にアカウントを作成します。 問題は、私がAccountManager.getAuthToken()を使ってスレッド内のトークンを回復しているときに、このトークンが復元される前にフラグメントが作成されるため、私のフラグメントがこのトークンを取得できないということです。したがって、私は私のサーバーからデータを要求することはできません。
私のアプリの構造がそれほど良くないと思うようになった。 だから私は考えていた、 "どうすればいい?" :
- ユーザーはアカウントをチェックして、デバイス上のアカウントがあるかどうトークンますが、現在のバージョンのようなビューの任意の種類を生成しないブートストラップのようなアプリ
- MainActivity行為を起動します。
- MainActivityのいずれかLoginActivityまたはContentActivityにリダイレクト
その方法は私がMainActivityのにトークンを持っているだろうと思います(、のは、そのようにそれを呼び出す私のリストビューにデータを取り込むために、私のトークンを使用することになっての活動をしましょう)私はそれがUXの面で理想的であるとは確信していません。 (コンテンツにアクセスする前にトークンを待つ必要があります)。 私は本当に立ち往生して以来、私はこの時点ですべての提案にオープンしています。
ありがとうございます!
アップデート1:
それはAccountManagerをハンドリングよりログイン/登録アプリロジックのより多くのです。私はそれらを動作させることに成功しましたが、私は本当に "ベストプラクティス"アプリケーションのロジック構造に苦しんでいます。そのため、他の多くの問題に遭遇することはありません。 私が必要とするのは、上の図のようにアプリケーションを動作させるための「ベストプラクティス」の例を示すための図または何かです。 私はMainActivityを起動するとアカウントをチェックし、そうでなければLoginActivityを起動しますが、私が戻るとMainActivity(満たされていない)が表示されるので、問題が発生しました。
この構造は完全に許容され、サーバー依存のアプリケーションの通常の流れである:一般診療の
は完全にオープンソースであるLast.fmアプリを見ていたし、彼が直接「ログイン」活動への派遣の並べ替えを行います。このアクティビティは、ユーザーが「アカウントを追加」設定から来たとき、ユーザーがアプリウィジェットを設定したとき、または単にアプリを起動したときに使用されるため、実際にはたくさんのものをチェックします(インテントアクションなど)。それも良い方法だと思いますか? (アクティビティコードのリンクはhttps://github.com/c99koder/lastfm-android/blob/master/app/src/fm/last/android/LastFm.javaです) SplashScreenを避けたいのは、私もUXのために悪いと思う – CinetiK
良いです。はい。ひとりが主張するならば、一つの活動をすべてに使うことができます。 –
ありがとう、本当に私を助けてくれました!私はそれを今働かせるように管理しました。 – CinetiK