Note that there are some explanatory texts on larger screens.

plurals
  1. POPattern "One activity, multiple views": Advantages and disadvantages
    primarykey
    data
    text
    <p>This pattern is similar to the pattern <em>Main Servlet</em> (the Front Controller) that is used for developing web applications.</p> <p>The main idea of this pattern: we have one Activity that manages multiple views and this activity is responsible for representing current content. Not all views need functional of activity (e.g. life-cycle methods) so the main question is: <strong>if I can go without activity why do I have to use it?</strong></p> <hr> <p>I have found the following disadvantages of using this pattern:</p> <ol> <li><p>Official source doesn't recommend to <a href="http://developer.android.com/guide/practices/design/seamlessness.html#multiple-activities" rel="noreferrer">Overload a Single Activity Screen</a> but they don't explain why.</p></li> <li><p>We cannot use <code>TabActivity</code>, <code>ListActivity</code>, <code>MapActivity</code>. But there are some tricks to go without them.</p></li> <li>If different screens have different menu it's a problem to make that without activities.</li> <li>It is necessary to keep history by ourselves. But it's not so difficult to develop.</li> </ol> <p>I have found the following advantages of using this pattern:</p> <ol> <li>It's faster to change the content of current activity than to start another activity</li> <li>We are free to manage history as we want</li> <li>If we have only one activity-context it's simpler to find and solve problems with memory leaks</li> </ol> <p>What do you think about this pattern ? Could you provide any other advantages/disadvantages ?</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload