Home | History | Annotate | Download | only in components
      1 page.title=    
      2 parent.title=
      3 parent.link=activities.html
      4 @jd:body
      5 
      6 <div id="qv-wrapper">
      7 <div id="qv">
      8 
      9 <h2> </h2>
     10 <ol>
     11 <li><a href="#ActivityState">  </a></li></li>
     12 <li><a href="#ManagingTasks"> </a>
     13   <ol>
     14     <li><a href="#TaskLaunchModes">  </a></li>
     15     <li><a href="#Affinities"> </a></li>
     16     <li><a href="#Clearing">   </a></li>
     17     <li><a href="#Starting"> </a></li>
     18   </ol>
     19 </li>
     20 </ol>
     21 
     22 <h2></h2>
     23 <ol>
     24   <li><a href="http://android-developers.blogspot.com/2010/04/multitasking-android-way.html">
     25    Android</a></li>
     26 </ol>
     27 
     28 <h2>. :</h2>
     29 <ol>
     30   <li><a href="{@docRoot}design/patterns/navigation.html"> Android:
     31 </a></li>
     32   <li><a href="{@docRoot}guide/topics/manifest/activity-element.html">  
     33 {@code &lt;activity&gt;}</a></li>
     34   <li><a href="{@docRoot}guide/components/recents.html"> </a></li>
     35 </ol>
     36 </div>
     37 </div>
     38 
     39 
     40 <p>    <a href="{@docRoot}guide/components/activities.html"></a>.  
     41        ,    ,    
     42 . ,            .
     43    ,       .</p>
     44 
     45 <p>    ,      . ,
     46        ,       
     47        , ,      .      
     48 ,  ,      .       , 
     49    ,          (  
     50    ,    ,    ).     
     51    ,    ,         . 
     52      ,  Android   
     53 ,      <em></em>.</p>
     54 
     55 <p>   ,    
     56    .      (<em>  </em>),  
     57 ,    .</p>
     58 
     59 <!-- SAVE FOR WHEN THE FRAGMENT DOC IS ADDED
     60 <div class="sidebox-wrapper">
     61 <div class="sidebox">
     62 <h3>Adding fragments to a task's back stack</h3>
     63 
     64 <p>Your activity can also include {@link android.app.Fragment}s to the back stack. For example,
     65 suppose you have a two-pane layout using fragments, one of which is a list view (fragment A) and the
     66 other being a layout to display an item from the list (fragment B). When the user selects an item
     67 from the list, fragment B is replaced by a new fragment (fragment C). In this case, it might be
     68 desireable for the user to navigate back to reveal fragment B, using the <em>Back</em> button.</p>
     69 <p>In order to add fragment B to the back stack so that this is possible, you must call {@link
     70 android.app.FragmentTransaction#addToBackStack addToBackStack()} before you {@link
     71 android.app.FragmentTransaction#commit()} the transaction that replaces fragment B with fragment
     72 C.</p>
     73 <p>For more information about using fragments and adding them to the back stack, see the {@link
     74 android.app.Fragment} class documentation.</p>
     75 
     76 </div>
     77 </div>
     78 -->
     79 
     80 <p>        .      
     81 
     82  (    ),       .  
     83    (     ),    
     84             .</p>
     85 
     86 <p>    ,      
     87   .     ,    .   
     88 ,       .    
     89 <em></em>,
     90       ( )  
     91    (     ).   
     92   ,               
     93  ,         <em></em>.  ,
     94 
     95         .   1  
     96    :        
     97      .</p>
     98 
     99 <img src="{@docRoot}images/fundamentals/diagram_backstack.png" alt="" />
    100 <p class="img-caption"><strong> 1.</strong>  ,      
    101      .    <em></em>, 
    102 
    103 ,     .</p>
    104 
    105 
    106 <p>     <em></em>,     ,
    107 
    108  ,        (  ,   
    109    ).      ,   .</p>
    110 
    111 <div class="figure" style="width:287px">
    112 <img src="{@docRoot}images/fundamentals/diagram_multitasking.png" alt="" /> <p
    113 class="img-caption"><strong> 2.</strong>  :  B   
    114   ,    A    ,  .</p>
    115 </div>
    116 <div class="figure" style="width:215px">
    117   <img src="{@docRoot}images/fundamentals/diagram_multiple_instances.png" alt="" /> <p
    118 class="img-caption"><strong> 3.</strong>     .</p>
    119 </div>
    120 
    121 <p>   ,      ,       
    122       <em></em>.     
    123 
    124 ,        .      
    125   ,     2.       ,   
    126      . , ,    ( A)   
    127        .    <em></em>,
    128   
    129      .    ,  A 
    130   .    ,       
    131 ( B)     .    
    132           
    133  A.   A   
    134        ,   ,  
    135  .  
    136         B,        ,
    137     (    
    138 <a href="{@docRoot}guide/components/recents.html"> </a>).
    139      Android.</p>
    140 
    141 <p class="note"><strong>.</strong>        .
    142 ,       ,   
    143      ,      .
    144 .   <a href="#ActivityState"> </a>.</p>
    145 
    146 <p>      ,    
    147       ,  
    148        (     
    149    ).  ,         
    150  (   ),     3. ,      
    151  <em></em>,       ,   
    152   (
    153     ).      ,    ,   
    154  .     <a href="#ManagingTasks"> </a> .</p>
    155 
    156 
    157 <p>     :</p>
    158 
    159 <ul>
    160   <li>  A   B,  A ,     
    161 (,    ,   ).
    162     <em></em>   B,  A  
    163   .</li>
    164   <li>       <em></em>,  
    165  
    166      .       . 
    167    ,    ,  
    168         .</li>
    169   <li>    <em></em>,     
    170 
    171 .     .   , 
    172 <em></em>   .</li>
    173   <li>    ,    .</li>
    174 </ul>
    175 
    176 
    177 <div class="note design">
    178 <p><strong> </strong></p>
    179   <p>         Android,   <a href="{@docRoot}design/patterns/navigation.html"></a>    Android.</p>
    180 </div>
    181 
    182 
    183 <h2 id="ActivityState">  </h2>
    184 
    185 <p>  ,      ,  
    186 .  ,       ,    
    187   .     <strong></strong>   
    188              
    189  .</p>
    190 
    191 <p>       (,      
    192    ),      ,   
    193  .   ,     .   ,
    194 
    195 ,       ,    
    196   ,      (   ).  
    197   ,         
    198   {@link android.app.Activity#onSaveInstanceState onSaveInstanceState()}
    199   .</p>
    200 
    201 <p>       .  
    202 <a href="{@docRoot}guide/components/activities.html#SavingActivityState"></a>.</p>
    203 
    204 
    205 
    206 <h2 id="ManagingTasks"> </h2>
    207 
    208 <p>   ,  Android      ,  ,  
    209           ,
    210  ,           
    211        .    ,    
    212  . ,  ,        
    213   (    ),      
    214        (  
    215      ),               
    216 ,   .</p>
    217 
    218 <p>             
    219 <a href="{@docRoot}guide/topics/manifest/activity-element.html">{@code &lt;activity&gt;}</a>
    220      ,    
    221 {@link android.app.Activity#startActivity startActivity()}.</p>
    222 
    223 <p>     <a href="{@docRoot}guide/topics/manifest/activity-element.html">
    224 {@code &lt;activity&gt;}</a>,    ,  :</p>
    225 
    226 <ul class="nolist">
    227   <li><a href="{@docRoot}guide/topics/manifest/activity-element.html#aff">
    228   {@code taskAffinity}</a></li>
    229   <li><a href="{@docRoot}guide/topics/manifest/activity-element.html#lmode">
    230   {@code launchMode}</a></li>
    231   <li><a href="{@docRoot}guide/topics/manifest/activity-element.html#reparent">
    232   {@code allowTaskReparenting}</a></li>
    233   <li><a href="{@docRoot}guide/topics/manifest/activity-element.html#clear">
    234   {@code clearTaskOnLaunch}</a></li>
    235   <li><a href="{@docRoot}guide/topics/manifest/activity-element.html#always">
    236   {@code alwaysRetainTaskState}</a></li>
    237   <li><a href="{@docRoot}guide/topics/manifest/activity-element.html#finish">
    238   {@code finishOnTaskLaunch}</a></li>
    239 </ul>
    240 
    241 <p>   ,    ,  :</p>
    242 
    243 <ul class="nolist">
    244   <li>{@link android.content.Intent#FLAG_ACTIVITY_NEW_TASK}</li>
    245   <li>{@link android.content.Intent#FLAG_ACTIVITY_CLEAR_TOP}</li>
    246   <li>{@link android.content.Intent#FLAG_ACTIVITY_SINGLE_TOP}</li>
    247 </ul>
    248 
    249 <p>   ,        
    250              .</p>
    251 
    252 <p> ,           
    253   .   .  
    254 <a href="{@docRoot}guide/components/recents.html"> </a>.          
    255    .      .</p>
    256 
    257 <p class="caution"><strong>!</strong>       
    258     .   ,     
    259   ,          
    260                <em></em>.
    261    ,    ,  .</p>
    262 
    263 
    264 <h3 id="TaskLaunchModes">  </h3>
    265 
    266 <p>        
    267   .        :</p>
    268 <ul class="nolist">
    269   <li><a href="#ManifestForTasks">  </a>
    270     <p>       ,   ,  
    271       .</li>
    272   <li><a href="#IntentFlagsForTasks">  </a>
    273     <p>   {@link android.app.Activity#startActivity startActivity()},
    274      {@link android.content.Intent},  ,    
    275      (  ).</p></li>
    276 </ul>
    277 
    278 <p> ,   A   B,  B     ,  
    279       (  ),   A   ,   B
    280      .    ,   B
    281     ,    A (   )  
    282   B (    ).</p>
    283 
    284 <p class="note"><strong>.</strong>   ,    ,
    285       ,  ,   ,    
    286  ,      .</p>
    287 
    288 
    289 <h4 id="ManifestForTasks">  </h4>
    290 
    291 <p>         ,   
    292       <a href="{@docRoot}guide/topics/manifest/activity-element.html#lmode">{@code
    293 launchMode}</a> 
    294  <a href="{@docRoot}guide/topics/manifest/activity-element.html">{@code &lt;activity&gt;}</a>.</p>
    295 
    296 <p> <a href="{@docRoot}guide/topics/manifest/activity-element.html#lmode">{@code
    297 launchMode}</a>      
    298 .     ,
    299     
    300 <code><a href="{@docRoot}guide/topics/manifest/activity-element.html#lmode">launchMode</a></code>:</p>
    301 
    302 <dl>
    303 <dt>{@code "standard"} (  )</dt>
    304   <dd>  .       , 
    305    ,    .      ,
    306      ,       .</dd>
    307 <dt>{@code "singleTop"}</dt>
    308   <dd>        , 
    309          {@link
    310 android.app.Activity#onNewIntent onNewIntent()},      
    311 .      ,   
    312   ,        (  
    313       <em></em>    ).
    314   <p>,          A   B, C
    315  D   (   A-B-C-D  D   ).      D.
    316  D    {@code "standard"}  ,     
    317    A-B-C-D-D. ,  D    {@code "singleTop"},  
    318 D    {@link
    319 android.app.Activity#onNewIntent onNewIntent()},        
    320    A-B-C-D. ,       B,   
    321    B,       {@code "singleTop"}.</p>
    322   <p class="note"><strong>.</strong>     ,
    323     <em></em>     .   
    324 
    325    ,      <em></em>   
    326 
    327       {@link android.app.Activity#onNewIntent
    328 onNewIntent()}.</p>
    329 </dd>
    330 
    331 <dt>{@code "singleTask"}</dt>
    332   <dd>           .
    333 ,        ,  
    334         {@link
    335 android.app.Activity#onNewIntent onNewIntent()},      . 
    336      .
    337   <p class="note"><strong>.</strong>     , 
    338 <em></em>     .</p></dd>
    339 <dt>{@code "singleInstance"}.</dt>
    340   <dd> ,   {@code "singleTask"},         
    341  ,   .       ;
    342  ,   ,    .</dd>
    343 </dl>
    344 
    345 
    346 <p>   :  Android Browser ,   - 
    347           {@code singleTask}   <a href="{@docRoot}guide/topics/manifest/activity-element.html">{@code &lt;activity&gt;}</a>.
    348  ,     
    349   Android Browser,   <em></em>    
    350 ,    .  ,      , ,   
    351  ,    ,         
    352 .</p>
    353 
    354 <p>      ,       , 
    355   <em></em>      . ,  
    356  ,     {@code singleTask},      ,  
    357      .   
    358        ,    ,  
    359 .  4    .</p>
    360 
    361 <img src="{@docRoot}images/fundamentals/diagram_backstack_singletask_multiactivity.png" alt="" />
    362 <p class="img-caption"><strong>4.</strong>  ,    
    363  singleTask     .     
    364        ,        ,
    365    .</p>
    366 
    367 <p>         .   
    368 <code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>,
    369       {@code launchMode}
    370   .</p>
    371 
    372 <p class="note"><strong>.</strong> ,          <a href="{@docRoot}guide/topics/manifest/activity-element.html#lmode">{@code launchMode}</a>,
    373    ,   ,    ,  
    374   .</p>
    375 
    376 
    377 
    378 <h4 id="#IntentFlagsForTasks">  </h4>
    379 
    380 <p>            
    381     ,    {@link
    382 android.app.Activity#startActivity startActivity()}.     
    383     :</p>
    384 
    385 <p>
    386   <dt>{@link android.content.Intent#FLAG_ACTIVITY_NEW_TASK}</dt>
    387     <dd>    .      ,   
    388 ,      ,    ,   
    389    {@link android.app.Activity#onNewIntent onNewIntent()}.
    390     <p>     ,    <a href="{@docRoot}guide/topics/manifest/activity-element.html#lmode">{@code launchMode}</a>   {@code "singleTask"},
    391     .</p></dd>
    392   <dt>{@link android.content.Intent#FLAG_ACTIVITY_SINGLE_TOP}</dt>
    393     <dd>      (     ), 
    394   {@link android.app.Activity#onNewIntent onNewIntent()}   ,
    395      .
    396     <p>     ,    <a href="{@docRoot}guide/topics/manifest/activity-element.html#lmode">{@code launchMode}</a>   {@code "singleTop"},
    397     .</p></dd>
    398   <dt>{@link android.content.Intent#FLAG_ACTIVITY_CLEAR_TOP}</dt>
    399     <dd>       ,  
    400         ,     
    401 ,          (     )
    402  {@link android.app.Activity#onNewIntent onNewIntent()}).
    403     <p>        
    404 <a href="{@docRoot}guide/topics/manifest/activity-element.html#lmode">{@code launchMode}</a>.</p>
    405     <p> {@code FLAG_ACTIVITY_CLEAR_TOP}     
    406  {@code FLAG_ACTIVITY_NEW_TASK}.
    407         
    408        ,      . </p>
    409     <p class="note"><strong>.</strong>       
    410 {@code "standard"},
    411            ,  
    412  .       {@code "standard"}   
    413    . </p>
    414 </dd>
    415 </dl>
    416 
    417 
    418 
    419 
    420 
    421 <h3 id="Affinities"> </h3>
    422 
    423 <p><em></em>      .   
    424         .    
    425        .    
    426     . , 
    427   ,     ;    ,    ,  
    428    .</p>
    429 
    430 <p>        
    431  <a href="{@docRoot}guide/topics/manifest/activity-element.html#aff">{@code taskAffinity}</a>
    432  <a href="{@docRoot}guide/topics/manifest/activity-element.html">{@code &lt;activity&gt;}</a>.</p>
    433 
    434 <p> <a href="{@docRoot}guide/topics/manifest/activity-element.html#aff">{@code taskAffinity}</a>
    435   ,        ,
    436    <a href="{@docRoot}guide/topics/manifest/manifest-element.html">
    437 {@code &lt;manifest&gt;}
    438 </a>,           
    439  .</p>
    440 
    441 <p>      :</p>
    442 <ul>
    443   <li> , 
    444 ,  
    445 {@link android.content.Intent#FLAG_ACTIVITY_NEW_TASK}.
    446 
    447 <p>        ,
    448   {@link android.app.Activity#startActivity startActivity()}.     
    449   ,    .  ,  , 
    450  {@link android.app.Activity#startActivity startActivity()},
    451   {@link android.content.Intent#FLAG_ACTIVITY_NEW_TASK},
    452         .    .
    453  .         , 
    454    ,     .   ,    .</p>
    455 
    456 <p>     ,     ,     <em></em>
    457    ,
    458   ,     .   ( 
    459  )      ,     , 
    460     {@code FLAG_ACTIVITY_NEW_TASK}  ,   
    461  {@link android.app.Activity#startActivity startActivity()}.
    462     ,   
    463  ,   ,   ,      
    464    , ,     (  
    465    {@link android.content.Intent#CATEGORY_LAUNCHER}; .  <a href="#Starting"> </a> ).</p>
    466 </li>
    467 
    468   <li>   <a href="{@docRoot}guide/topics/manifest/activity-element.html#reparent">
    469 {@code allowTaskReparenting}</a>    {@code "true"}.
    470   <p>           ,      ,
    471       .</p>
    472   <p>,  ,        ,
    473      .      ,       
    474  (   ),      .
    475         ,     
    476 ,    . ,          ,
    477          .</p>
    478 </li>
    479 </ul>
    480 
    481 <p class="note"><strong>.</strong>   {@code .apk}    
    482    , , ,    <a href="{@docRoot}guide/topics/manifest/activity-element.html#aff">{@code taskAffinity}</a>
    483     ,    .</p>
    484 
    485 
    486 
    487 <h3 id="Clearing">   </h3>
    488 
    489 <p>       ,      , 
    490  .      ,    .
    491     ,          ,
    492    ,    ,   - . </p>
    493 
    494 <p>       ,    : </p>
    495 
    496 <dl>
    497 <dt><code><a
    498 href="{@docRoot}guide/topics/manifest/activity-element.html#always">alwaysRetainTaskState</a></code>
    499 </dt>
    500 <dd>      {@code "true"}    ,
    501       .
    502             .</dd>
    503 
    504 <dt><code><a
    505 href="{@docRoot}guide/topics/manifest/activity-element.html#clear">clearTaskOnLaunch</a></code></dt>
    506 <dd>      {@code "true"}    ,
    507       ,     
    508    .   ,     
    509 <a href="{@docRoot}guide/topics/manifest/activity-element.html#always">
    510 {@code alwaysRetainTaskState}</a>.       
    511  ,      .</dd>
    512 
    513 <dt><code><a
    514 href="{@docRoot}guide/topics/manifest/activity-element.html#finish">finishOnTaskLaunch</a></code>
    515 </dt>
    516 <dd>    <a href="{@docRoot}guide/topics/manifest/activity-element.html#clear">{@code clearTaskOnLaunch}</a>,
    517    
    518  ,     .         ,
    519   .       {@code "true"},
    520        .   
    521   ,     ,   .</dd>
    522 </dl>
    523 
    524 
    525 
    526 
    527 <h3 id="Starting"> </h3>
    528 
    529 <p>     ,       
    530 {@code "android.intent.action.MAIN"}     
    531 {@code "android.intent.category.LAUNCHER"}
    532    . :</p>
    533 
    534 <pre>
    535 &lt;activity ... &gt;
    536     &lt;intent-filter ... &gt;
    537         &lt;action android:name="android.intent.action.MAIN" /&gt;
    538         &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
    539     &lt;/intent-filter&gt;
    540     ...
    541 &lt;/activity&gt;
    542 </pre>
    543 
    544 <p>      ,          
    545 ,     
    546            .
    547 </p>
    548 
    549 <p>    :            
    550      .   <a href="#LaunchModes">
    551 </a>,  ,     , {@code "singleTask"} 
    552 {@code "singleInstance"},      ,   
    553 {@link android.content.Intent#ACTION_MAIN}
    554   {@link android.content.Intent#CATEGORY_LAUNCHER}. , ,   ,
    555   :    {@code "singleTask"},  
    556  ,        .    
    557 <em></em>.        .      
    558  ,        .</p>
    559 
    560 <p>  ,    ,      ,   
    561 <a href="{@docRoot}guide/topics/manifest/activity-element.html#finish">{@code finishOnTaskLaunch}</a>
    562 
    563 <code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>
    564  {@code "true"} (.  <a href="#Clearing"> </a>).</p>
    565 
    566 <p>         
    567    .   <a href="{@docRoot}guide/components/recents.html">
    568  </a>.</p>
    569 
    570 <!--
    571 <h2>Beginner's Path</h2>
    572 
    573 <p>For more information about how to use intents to
    574 activate other application components and publish the intents to which your components
    575 respond, continue with the <b><a
    576 href="{@docRoot}guide/components/intents-filters.html">Intents and Intent
    577 Filters</a></b> document.</p>
    578 -->
    579