Android Whats running in background

Post on 16-Feb-2017

67 views 2 download

Transcript of Android Whats running in background

Welcome

Android: What’s running in Background

Road to perdition Hello world

UI Thread (ANR)

Worker Thread (CalledFromWrongThreadException)

Handler AsyncTask (Component Destroyed)

Better Call ServiceService (when no one is looking)

Services / Threads (war of two worlds)A service is not an alternative to background threads but it provides another scope in which to run your worker threads! • The thread should stay alive, even when the user is not interacting with the application.

• In addition, a Service can be started from another application using an Intent.

Naval Kishore Barthwal
need a diagram activity thread and service timeline

Golden Rule

DO NOT let services live longer than they are

needed.

Naval Kishore Barthwal
get service life cycle diagram

OptionsGCM

BroadcastReceiver

LocalBroadcastReceiver

WakefulBroadcastReceiver

HandlerThreads

AsyncTaskLoaders

ThreadPoolExecutor

ContentProvider

IntentService

SyncAdapter

JobScheduler

DownloadManager

ServicesNormal Service

Intent Service [special case of normal service]

Bound Service [in same process]

Bound Service [in separate process-> Messenger]

Bound Service [in separate application-> AIDL]

onStartCommandSTART_STICKY to automatically restart if killed, to keep it

active.

START_REDELIVER_INTENT for auto restart and retry if the service was killed before stopSelf(). This is needed for services receiving inputs.

START_NOT_STICKY to not automatically restarts if killed, but wait for next startService() call. For non-essential services.

START_STICKY_COMPATIBILITY with Android 1.6 and earlier legacy onStart() method.

Start Services

• What happens if task is removed from recent?

• What happens if force stop?

• What happens if exception occur in running process?

Local Bound Services

What would happen if try to make connect IPC in LocalBinder?

Sync on AndroidWell, you probably use it everyday...

Big picture

Big picture

Account managerSingle sign-in

Secure storage

Share auth-token

Ref: http://blog.udinic.com/2013/04/24/write-your-own-android-authenticator/Account manager

Content providerCommon storage

CRUD operations

Require permissions

ContactsProvider:

<uses-permission android:name="android.permission.READ_CONTACTS"><uses-permission android:name="android.permission.WRITE_CONTACTS">

Download managerRun in a background

Network type check

Maintain queue

Job Scheduler❏Introduced in Android 5.0 Lollipop (API 21)

❏When you would use this- Tasks that should be done once the device is connected to a power supply- Tasks that require network access or a Wi-Fi connection.- Task that are not critical or user facing- Tasks that should be running on a regular basis as batch where the timing is not critical

❏ Job Scheduler

- Persists the data across device reboots

- Certain criteria can be set

- Service runs when set criteria is available

- Delay can be set

- Use for periodical running task

❏ Alarm Manager

- Broadcast listener to wake up

- Data get lost on device reboot

- Service keeps running until you manually turns off or system do it for you

- Use for scheduling task at specific time