0

複数のアクティビティを含むアプリケーションがあります。1 つ目はログイン/起動アクティビティで、その後にアプリケーション (およびその「ログイン」接続) の存続期間中に変更されるアクティビティがいくつかあります。

ユーザーがホーム ボタンを押すと、ランチャーに戻ります。すべて順調です。また、ユーザーが「最近のアプリ」に移動して自分のアプリを選択すると、中断したところに戻ります (望ましい動作)。ユーザーが代わりにランチャーのアイコンに移動してアプリケーションを再起動すると、2 つの動作のいずれかが発生します。1.最近のアプリからアクティビティを選択した場合と同様に、アクティビティが以前の場所に正確に返されます。2. アクティビティは最初のログイン画面に移動します。私が期待していたものではありません。これは、Android のほとんどのデバイスとバージョンには当てはまらないようですが、一部のデバイスでは毎回発生するようです。4.0.4 または 4.1 または 4.2 にピン留めすることはできませんでした。この動作は、一部の電話の 3 つのバージョンすべてで見られます。

ランチャーに移動したときにこれらのシステムのアクティビティ スタック (dumpsys を使用) を見ると、同じように見えます (ランチャーのすぐ下のスタックに最新のものが表示され、アプリケーション スタックも表示されます)。一番上が私の最新のものです)。しかし、ランチャーのアプリ アイコンをクリックすると、ほとんどのデバイスでアイコンが戻ってきて、アクティビティ スタックの一番上に最新のものが表示されます。しかし、これらの他のいくつかのデバイスでは、最近のログイン アクティビティの上にログイン アクティビティが表示されます。ログイン アクティビティ中に「戻る」ボタンをクリックすると、喜んで中断したところに戻ります。

たとえば、一部のデバイスでは、ホームにアクセスしてアプリ アイコンをクリックすると、次のスタックが表示されます。

"ConnectActivity2"
"ConnectActivity1"
"LoginActivity"

そして、これらの他のものについては、次のように表示されます。

"Login Activity"
"Connect Activity2"
"Connect Activity1"
"Login Activity"

デバイス/オペレーティング システムでこの動作を制御するオプションはありますか? または、アプリに戻る方法を指示する「ホーム」に移行するときに、アプリに何かする必要がありますか (もしそうなら、なぜ時々だけ必要になるのですか)?

4

1 に答える 1

0

私はそのようなオプションを知りませんし、アプリの起動時に開始する必要があるメインのアプリ アクティビティがマニフェスト ファイルで指定されているため、存在しないと思います。ただし、あなたと同じことをしなければならなかった私のアプリでは、SwitchActivity という名前のアクティビティを作成しました。

その目的は次のとおりです。

  • 大きなロゴなどを含むスプラッシュ スクリーンを表示する
  • スプラッシュが表示されている間に、ユーザーがすでにログインしているかどうかを確認してください
  • はいの場合 - 必要なアクティビティに転送します。つまり、スプラッシュを閉じて独自のスタックで新しいルート アクティビティを作成し、ユーザーがルート アクティビティの [戻る] ボタンをタップするとアプリがバックグラウンドになるようにします。
  • そうでない場合 - ログインに転送します。
于 2013-09-13T16:20:49.023 に答える