0

私は3つの別々のアプリケーションA、B、およびCを持っています。それらはすべてサービスSを使用します.A、B、またはCがサービスSに接続し、サービスSを開始する必要がある場合、フォームFを使用してユーザーから資格情報を収集する必要があります.

ユーザーエクスペリエンスを次のようにしたい:

  1. Android のメイン メニューから、ユーザーはいずれかのアプリケーションをタップします。A、B、または C。
  2. サービスが開始されていないため、フォーム F が表示されます。
  3. ユーザーはフォーム F に入力し、[OK] をタップします。
  4. 検証が行われます。
  5. 資格情報の検証が成功すると、選択したアプリ (A、B、または C) の適切なアクティビティが表示されます。
  6. 検証が成功した後、開始される後続のアプリケーションは認証する必要がなく、そのアプリのアクティビティから開始されます。
  7. 検証に失敗し、ユーザーが戻るボタンを押すと、メイン メニューが再び表示されます。

これらすべてを考えると、私が望むのは、サービスが必要に応じて資格情報フォームを開始することだと思います-サービスはこれを行うことができますか? そうでない場合、これを実装する別の方法は何でしょうか?

4

2 に答える 2

2

サービスはコンテキストであり、コンテキストはアクティビティを開始できます:
https://developer.android.com/reference/android/content/Context.html#startActivity(android.content.Intent)

于 2010-02-26T22:58:29.960 に答える
1

Service が Activity を直接開始することはありません。これは、通知に関するドキュメントに明確に記載されています。こちらのリンクからご覧いただけます(2段落目参照)。

あなたが説明したシナリオは、別の方法で処理できます。

  1. isValidated()ユーザーがすでに検証されている場合に true を返すメソッドをサービスに追加します。
  2. アクティビティ A、B、または C はisValidated()、最初にユーザーが検証されているかどうかを確認するために使用する必要があります。そうでない場合、Activity は from F を表示する必要があります。
于 2011-03-17T08:35:04.667 に答える