0

タスクとバックスタック(http://developer.android.com/guide/components/tasks-and-back-stack.html)について読みましたが、それでも混乱はほとんどありません。私はただ1つのケースでさまざまなこととstcukを試していました。例を見てみましょう。2つのアプリA1とA2があります。A1にはA1_first(メインアクティビティでもある)という1つのアクティビティがあり、A2にはA2_first(メインアクティビティ)とA2_secondの2つのアクティビティがあります。A2_secondはsingleTaskアクティビティです。A1_fristはボタンを押すとA2_secondを呼び出し、A2_firstもボタンを押すとA2_secondを呼び出します。

A2を起動すると、A2_first画面が表示され、ボタンを押した後、A2_secondに移動します(予想どおり)が、最初にA1を起動し、ボタンを押した後、A2_secondを押してから、ホームボタンを押し、ランチャーからもう一度A2アイコンを押すと、A2_secondに到達しましたがA2_firstに到達することを期待していました。

何が欠けているのかわかりませんでした。誰かがA2を押すことを説明できますかA1_first----->A2_second ----> home -----------------> A2_second(なぜA2_firstではないのですか??A2_firstはA2の主な活動です)。

4

4 に答える 4

2

ホーム画面からアプリケーションを起動した場合、必ずしもそのアプリケーションの最初のアクティビティに移動するわけではありません。アプリケーションがすでに実行されている場合は、アプリケーションで中断したところに戻るだけです。これはあなたが見ているものです。さらに、「singleTask」起動モードを使用することで、物事をより複雑にしました。一般に、「singleTask」または「singleInstance」起動モードは使用しないでください。これらは、主にホーム画面の置換を作成するために使用される非常に特別な起動モードです。いずれの場合も、特別な起動モードの1つを使用する必要がある場合は、これらの起動モードを使用するアクティビティに別のアプリケーションアイコンがあることを確認する必要があります。A2_firstとA2_secondに異なるアプリケーションアイコンがある場合は、何が起こっているのかがより明確になります。

于 2012-12-17T09:53:22.493 に答える
0

ホームボタンを押すと、A2_secondがバックグラウンドになります。終わらない(終わり)。したがって、A2アイコンをクリックすると、システムはA2から最後にアクセスされたアクティビティ(存在する場合)を探します。A2_secondが使用可能であり、バックグラウンド状態にあるため、システムは単にそれをフォアグラウンドにコールバックします。

これは、Androidがマルチタスクを確立する方法です。アプリ全体(すべてのアクティビティ)が一度にメモリに読み込まれることはありません。代わりに、アプリケーションは、必要に応じてロードできる機能(アクティビティ)のチャンクに分割されます。したがって、別のアプリからアクティビティを呼び出し(A1_firstからA2_secondを呼び出す)、次にホームを押すと、このアクティビティ(A2_second)はバックグラウンドに移動します。A2アイコンをクリックすると、システムはA2_secondがバックグラウンドにあることを認識しているため、ユーザーが最後にアクセスしたため、おそらく彼/彼女が探している部分であるため、フォアグラウンドに移動します。

ただし、「戻る」を押すと、A2_secondが終了します。この後、A2アイコンをクリックすると、A2_firstが起動します。

このように、さまざまなアプリのさまざまな部分(アクティビティ)をメモリ内に共存させ、システムを高速かつ迅速に保ちながら、ユーザーにシームレスなエクスペリエンスを提供できます。

于 2012-12-17T10:01:53.683 に答える
0

私があなたを正しく理解しているなら、あなたはアプリケーションを終了するのではなく、ホームボタンを押すだけです。アプリケーションの状態が変更されていない場合は、ホームを押す前にアプリケーションを離れたときと同じアクティビティが開いた状態でキャッシュから復帰します。

ホームボタンを押したときにアプリを終了する方法の詳細については、ホームボタンを押したときにアクティビティを終了する方法()を試してください

于 2012-12-17T09:51:57.413 に答える
0

アクティビティAからアクティビティBを(正常に)開始し、[戻る]を押すと、アクティビティAに戻ります。これらのアクティビティが属するアプリケーションとは関係なく。

申し訳ありませんが、Androidには戻るための標準の「ホーム」コマンドはありません。たとえば、私の電話では、「ホーム」はスタート画面に戻り、すべてのアクティビティがバックグラウンドで実行されます。明らかに、あなたはそれを意味するものではありません。

私はこれだけでは不十分です。ここに、返品の呼び出しと処理を含むアクティビティを含むコードを入れてください。呼び出しボタンとリターンプロセスが正確に何をするのか、わからないことを言うのは難しいです。

また、タスクとバックスタックを理解する前に、最初に開始/復帰するアクティビティを理解することをお勧めします。

于 2012-12-17T09:54:22.057 に答える