活動(アクティビティ)4つの起動モード

1.標準モード

       これは、アクティブなデフォルトのブートモードで、すべての活動の発展を表示せずに、このモードを使用して自動的に起動します。活動を開始するには、このスルーモードたびに、アンドロイドは常に新しいインスタンスを起動するターゲットアクティビティです。

2. singleTopモード

       これは、標準モードに似ていますが、それは少し異なっている:活動は、スタックのタスクの最上部に発見されたときに、このモードで起動させる際に、ターゲット・アクティビティーのシステムが再作成されないインスタンスが、活動は既存のインスタンスを再利用します。

       あなたが活動を開始しようとしている場合は、スタックのタスクの最上位にない場合、システムはターゲットアクティビティのインスタンスを再作成、およびタスクのスタックにそれをロードします。    

3. singleTaskモード

       このローディングパターンは、システムはこのモードで使用されるタスクインスタンスが1つだけ、singleTask活性を活性化する同じアクティビティで使用され、3つのケースに分けることができます。

       あなたが存在しない活動を開始したい場合は、<1>、システムがターゲットアクティビティのインスタンスを作成し、タスクスタックに追加します。

       <2>活動はタスクスタックにすでに開始される場合は、この時間の同じ行動パターンsingleTopと。

       <3>すでに開始させる活性が存在するが、スタックのタスクの最上位にない場合は、システムが活動のすべてを置くターゲット活動へのスタックの最上位となるよう、上記の活動タスクスタックの外に位置しています。

4. singleInstanceモード

       このロードモードでは、タスクは、ターゲットアクティビティを起動し、そこから関係なくは、目標は、唯一のアクティビティのインスタンスを作成し、アクティビティインスタンスをロードするために、新しいタスクのスタックを使用します。システムモードはsingleInstanceアクティビティを使用して開始されると、それは二つの状況に分けることができます。

       あなたはアクティビティが存在しない起動したい場合は、<1>、システムは、新しいタスクを作成し、ターゲットアクティビティのインスタンスを作成し、スタックの新しいタスクのトップに追加します。

       あなたは活動がすでに存在して開始したい場合は、<2>、それが配置されているアプリケーションに関係なく、それがどのタスクに位置しているかどうか、システムは活動のタスクが表示アクティビティを使用するために、前面に配置されているだろう。

       ヒント:これは、タスクの活動が活性のみが含まれているsingleInstance負荷モードを使用して、スタックのタスクの最上部にそのsingleInstanceモードのロード・アクティビティの使用は常に注意しなければなりません。

ます。https://my.oschina.net/u/2448419/blog/512471で再現

おすすめ

転載: blog.csdn.net/weixin_33814685/article/details/92291329