OLD | NEW |
1 <h1 id="lab_6_lifecycle">Manage App Lifecycle</h1> | 1 <h1 id="lab_6_lifecycle">Manage App Lifecycle</h1> |
2 | 2 |
3 <p>Like everything in this world, apps have a lifecycle. They are installed, la
unched, restarted, suspended when the system needs to free up resources and unin
stalled. This lab will show you the basics of the Chrome app lifecycle and how
its heart, the event page (aka background script), is used.</p> | 3 <p>Like everything in this world, apps have a lifecycle. They are installed, la
unched, restarted, suspended when the system needs to free up resources and unin
stalled. This lab will show you the basics of the Chrome app lifecycle and how
its heart, the event page (aka background script), is used.</p> |
4 | 4 |
5 <h2 id="the_event_page">The event page</h2> | 5 <h2 id="the_event_page">The event page</h2> |
6 | 6 |
7 <p>The event page is one of the most important pieces of a Chrome app. It's
responsible for what gets launched, when, and how. | 7 <p>The event page is one of the most important pieces of a Chrome app. It's
responsible for what gets launched, when, and how. |
8 For example, if your app is an instant messenger, you might want your event page
to only show a UI when there is a new notification.</p> | 8 For example, if your app is an instant messenger, you might want your event page
to only show a UI when there is a new notification.</p> |
9 | 9 |
10 <p>For simpler apps, the event page listens to the app lifecycle events and reac
ts appropriately. | 10 <p>For simpler apps, the event page listens to the app lifecycle events and reac
ts appropriately. |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
54 you won't always want to save the partial form while the user is typing. | 54 you won't always want to save the partial form while the user is typing. |
55 If the user quits the app on purpose, she might not be interested keeping the pa
rtial data. | 55 If the user quits the app on purpose, she might not be interested keeping the pa
rtial data. |
56 If the Chrome runtime restarted for some reason other than by a user's inten
tion, | 56 If the Chrome runtime restarted for some reason other than by a user's inten
tion, |
57 the user will want that data when the app is restarted.</p> | 57 the user will want that data when the app is restarted.</p> |
58 | 58 |
59 <p>Let's change our code to save the Todo input field in $(ref:storage) as t
he user types, | 59 <p>Let's change our code to save the Todo input field in $(ref:storage) as t
he user types, |
60 only restoring it if the <code>onRestarted</code> event is triggered.</p> | 60 only restoring it if the <code>onRestarted</code> event is triggered.</p> |
61 | 61 |
62 <p class="note"><b>Note:</b> | 62 <p class="note"><b>Note:</b> |
63 We learned about <code>chrome.storage.sync</code> before, but | 63 We learned about <code>chrome.storage.sync</code> before, but |
64 <a href="storage.html#using-sync">chrome.storage.local</a> | 64 <a href="storage#using-sync">chrome.storage.local</a> |
65 wasn't mentioned until now. | 65 wasn't mentioned until now. |
66 Both have exactly the same syntax, | 66 Both have exactly the same syntax, |
67 but the semantics of <code>chrome.storage.local</code> is, as the name says, com
pletely local. | 67 but the semantics of <code>chrome.storage.local</code> is, as the name says, com
pletely local. |
68 There's no attempt to synchronize or to save the data in the cloud.</p> | 68 There's no attempt to synchronize or to save the data in the cloud.</p> |
69 | 69 |
70 <h3 id="event-page">Update event page</h3> | 70 <h3 id="event-page">Update event page</h3> |
71 | 71 |
72 <p>Update the event page to include the | 72 <p>Update the event page to include the |
73 <code>onLaunched</code> and <code>onRestarted</code> events. | 73 <code>onLaunched</code> and <code>onRestarted</code> events. |
74 Events are handled the same in | 74 Events are handled the same in |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
194 | 194 |
195 <h2 id="takeaways_">Takeaways</h2> | 195 <h2 id="takeaways_">Takeaways</h2> |
196 | 196 |
197 <ul> | 197 <ul> |
198 <li>The event page may continue to run even when your windows are closed; | 198 <li>The event page may continue to run even when your windows are closed; |
199 you can move logic that is shared amoung windows to the event page.</li> | 199 you can move logic that is shared amoung windows to the event page.</li> |
200 </ul> | 200 </ul> |
201 | 201 |
202 <h2 id="you_should_also_read">You should also read</h2> | 202 <h2 id="you_should_also_read">You should also read</h2> |
203 | 203 |
204 <p><a href="app_lifecycle.html">Manage App Lifecycle</a> tutorial</p> | 204 <p><a href="app_lifecycle">Manage App Lifecycle</a> tutorial</p> |
205 | 205 |
206 <h2 id="what_39_s_next_">What's next?</h2> | 206 <h2 id="what_39_s_next_">What's next?</h2> |
207 | 207 |
208 <p>In <a href="app_codelab7_useridentification.html">6 - Access User's Data</a>, | 208 <p>In <a href="app_codelab7_useridentification">6 - Access User's Data</a>, |
209 you will learn how to identify users and use OAuth2.0 to access Google and other
third party services.</p> | 209 you will learn how to identify users and use OAuth2.0 to access Google and other
third party services.</p> |
210 | 210 |
211 <p class="note"><b>Note:</b> | 211 <p class="note"><b>Note:</b> |
212 The next chapter covers a still experimental API. | 212 The next chapter covers a still experimental API. |
213 If you don't want to play with experimental APIs, feel free to skip it - the | 213 If you don't want to play with experimental APIs, feel free to skip it - the |
214 rest of the codelab is independent from it. | 214 rest of the codelab is independent from it. |
215 </p> | 215 </p> |
OLD | NEW |