0% found this document useful (0 votes)
3 views

03 b Addendum AndroidFrameworkElements Part2

Uploaded by

gothboy carnaged
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

03 b Addendum AndroidFrameworkElements Part2

Uploaded by

gothboy carnaged
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 19

Mobile Application Development

Android Application Model II

1
Outline
• Activity Lifecycle
• Services
• Persistence
• Content Providers

2
Recap
• Android Framework
• Activities
• General UI:
– Layouts, Handler methods
– Widgets, Custom UI classes, Handling within
activity
• Specialized UIs:
– Menus and the Action Bar
– Special Activities – Preferences
• UI for larger screens: Fragments
3
The Activity Lifecycle
• Android runtime manages Activities
• Activities have a “lifecycle”
consisting of states: from creation
until death
• Standard (lifecycle) methods on the
activity are invoked at each state
change (can test by rotating device)

4
Activity States
• Created: Born to run
• Active: Working 9 to 5
• Paused: I’m about to break
• Resumed: Back to work
• Stopped: Obscured by clouds,
vulnerable

5
Activity Transitions
• Created ⟹ Active
• Active ⟺ Paused
• Paused ⟹ Stopped ⟹ Active
• Stopped ⟹ Killed

6
Timing of
Activity
Lifecycle
Methods

7
Lifecycle Methods
• onCreate(Bundle savedInstanceState): create
views, (re) initialize state
• onStart(): Restore transient state; one-time
processing
• onResume(): Session-specific processing, restore
transient state
• onPause(): Save persistent data, release resources,
quickly! Last method guaranteed to be called.
• onStop(): Called optionally by runtime
• onDestroy(): If finish() is called, or object is being
temporarily destroyed. Distinguish via
isFinishing(). 8
Transient State Management
Methods
• onSaveInstanceState(...): Called
before onPause(); use to save
transient state.
• onRestoreInstanceState(...):
Called after onStart() and
onResume(); use to restore state.

9
Interaction Across Activities
• Activity 1: onPause()
• Activity 2: onCreate(), onStart(),
onResume()
• Activity 1: onStop() – if it is
obscured

10
Outline
• Activity Lifecycle
• Services
• Persistence
• Content Providers

11
Services
• Activities for background, long-term processing (e.g.,
email, music, synchronization)
• Local: Accessible by a single app.
• Remote (aka bound): Accessible by all apps on the
device
– See: http://developer.android.com/guide/topics/fundamentals/
services.html#CreatingBoundService
• Comparison with threads:
– Coarser-grained processing
– Lifecycle separated from launching activity
– More resources consumed
– More respected  by OS 12
Saving Persistent Data –
Files
• Same as in any Java or Kotlin app
• Internal storage (Linux file system)
– Local to app
– Destroyed upon uninstall
• External storage (e.g., SD card)
– Stored to SD card or flash memory (device-
dependent)
– Shared among applications
– E.g.: Java Kotlin
File imageFile = val imageFile =
new File(imageFilePath);
File(imageFilePath)
13
Cloud Persistence
• Cloud data stores useful when app users
need to read other users’ written data
• Example: Google’s Firebase
– Non-relational data store (high availability)
– Realtime Database: persists (key, value) data
in a shared JSON tree
– Cloud Firestore: supports more flexible
persistence (document-based approach)
– More info: http://firebase.google.com
14
Outline
• Activity Lifecycle
• Services
• Persistence
• Content Providers

15
Sharing Content – Content
Providers
• Standard content providers:
– Contacts, dictionary, media
• Referred to by URI prefix: content://
– Standard providers
• Permission must be requested in
manifest:
<uses-permission android:name=
"android.permission.READ_CONTACTS"/>

• Android 6+: permission for


“dangerous” actions must be
requested at runtime (
https://developer.android.com/
training/permissions/requesting.html ) ListView of
user’s contacts
16
Even More?!
• Yes!
• More widgets, styles and themes
• Maps
• Email, media, telephony
• Sensors

17
Summary
• Activities: “Single screen” of content that user sees
– Can be paused, resumed by users
– Managing Activity lifecycle is crucial!
• Services: Long-running tasks
• Persistence:
– Files (internal, external storage)
– (Local) SQLite database
– Look at https://developer.android.com/guide/topics/
data/data-storage.html for info about Room ORM (easier
to use than SQLiteOpenHelper)
• Content Providers: mechanism for sharing data 18
Credit

Adam C. Champion, Ph.D


Dr. Rajiv Ramnath
Reading: Big Nerd Ranch Guide, Chaps. 3, 5 (Activities);
Chap. 28 (Services); Chap. 14 (DB); Chap. 15 (Contacts)

19

You might also like