7

私は、フラグメントの作成、フラグメントのライフサイクルの処理、アクティビティのライフサイクルの管理、アクティビティの一時停止と再開の4 つのトピックに従っていました。だから私はこれについて少し疑問を持っています。私の質問は

  1. AActivityが BActivityを介して呼び出すが、A がメソッドをIntent呼び出さない場合、A はB がorの場合は状態になり、B が の場合は状態になります。私は正しいですか?finish()PauseTransparentSemiTransparentStopOpaque
  2. AActivityFragmentF が含まれている場合、A がPause状態になる場合、F はPause状態になり、A がStop状態になる場合、F もStop状態になります。私は正しいですか?
  3. A が B を呼び出しActivity 、B が状態Transparentにある場合、A はPause状態になり、F も状態になります。B がコールするとfinish()、A はResume状態になりますが、F はどうなりますか? 一時停止から再開するようになりますか?アクティビティができることを直接Fragment示すライフサイクルの直接的なリンクを見たことがないので、それがどのように、どのようなステップであるかです。onPause()onResume()

    私が欲しいものを尋ねることができることを願っています。私の悪い英語でごめんなさい。

4

2 に答える 2

3
  1. 私が理解しているように、 B が SemiTransparent または部分的に表示されている場合、 onPause のみが A で呼び出されるかどうかはわかりません。

    一時停止

    別のアクティビティがフォアグラウンドにあり、フォーカスがありますが、このアクティビティはまだ表示されています。つまり、別のアクティビティがこのアクティビティの上に表示され、そのアクティビティは部分的に透明であるか、画面全体をカバーしていません。一時停止されたアクティビティは完全に有効ですが (Activity オブジェクトはメモリに保持され、すべての状態とメンバー情報を維持し、ウィンドウ マネージャーに接続されたままになります)、メモリが極端に少ない状況では、システムによって強制終了される可能性があります。

  2. はい、あなたは正しいです:

    フラグメントが存在するアクティビティのライフサイクルは、フラグメントのライフサイクルに直接影響します。アクティビティの各ライフサイクル コールバックは、各フラグメントの同様のコールバックになります。たとえば、アクティビティが onPause() を受け取ると、アクティビティ内の各フラグメントが onPause() を受け取ります。

    ただし、その逆は当てはまりません。つまり、フラグメントが onStop を受け取った場合、Activity の onStop が呼び出されるとは限りません。

  3. 最後の文が何を意味しているのか、またはこれをどのようにテストしたのかよくわかりません。フラグメントのドキュメントによると:

    public void onResume ()

    フラグメントがユーザーに表示され、アクティブに実行されているときに呼び出されます。これは通常、含まれているアクティビティのライフサイクルの Activity.onResume に関連付けられています。

    フラグメントがアクティビティによってどのように処理されるかによって異なるため、一般的に言えます。

于 2012-11-18T09:48:02.130 に答える
0
  1. A アクティビティが Intent を介して B アクティビティを呼び出し、A が finish() メソッドを呼び出さない場合、B が透明または半透明の場合、A は一時停止状態になり、B が不透明の場合、停止状態になります。私は正しいですか?

    そうですね

  2. A アクティビティにフラグメント F が含まれている場合、A が一時停止状態になると、F は一時停止状態になり、A が停止状態になると、F も停止状態になります。私は正しいですか?

    はい正解

  3. A が B アクティビティを呼び出し、B が透過的である場合、A は一時停止状態になり、F も一時停止状態になります。B が finish() を呼び出すと、A は Resume 状態になりますが、F はどうなりますか? 一時停止から再開するようになりますか?アクティビティが実行できるように onPause() から onResume() を直接示す Fragment ライフサイクルの直接リンクを見たことがないため、それがどのように、どのような手順であるかです。

あなたが理解したことは正しいです。このシナリオでも、フラグメントはアクティビティと同じように onPause から onResume 状態に移動します。残念ながら、開発者の Android には、これに関するドキュメントがあまりありません。これは、混乱を招く可能性のある複雑な図を避けたかったためかもしれません。

于 2013-12-06T08:14:36.737 に答える