SlideShare ist ein Scribd-Unternehmen logo
1 von 109
Downloaden Sie, um offline zu lesen
Mastering Android Tasks
Why I am on stage?
Ran is Android GDE.
Ran knows how to use Impress
Ran spent lot of time on Android tasks.
Ran can break-dance.
Activities
Single UI screen.
Stacked like a deck of cards.
Only one is visible.
Only one is active.
New Activities are places on
top.
Activities
Application may have more than one Activity
Task
Collection of activities.
Organized in stack (i.e. “back stack”)
Task have at least one activity.
New activities placed on top
LIFO Queue
Each task has a “name” called Affinity.
Activity C
Activity B
Activity A
Tasks
Each app has at least one task
May have more

Tasks can be moved to “background”
Keeping their back stack.

User navigate between tasks
Easy switching between apps.
Multitasking experience.
User's Action
Home

(Foreground Task)

(Backgorund Tasks)
User's Action
Home
Ingress

(Foreground Task)

(Backgorund Tasks)
User's Action
Home
Ingress
Home

(Foreground Task)

(Backgorund Tasks)
User's Action
Home
Ingress
Home
G+

(Foreground Task)

(Backgorund Tasks)
User's Action
Home
Ingress
Home
G+
Enters Post

(Foreground Task)

(Backgorund Tasks)
User's Action
Home
Ingress
Home
G+
Enters Post
Home

(Foreground Task)

(Backgorund Tasks)
User's Action
Home
Ingress
Home
G+
Enters Post
Home
Flipboard

(Foreground Task)

(Backgorund Tasks)
User's Action
Home
Ingress
Home
G+
Enters Post
Home
Flipboard
Home

(Foreground Task)

(Backgorund Tasks)
User's Action
Home
Ingress
Home
G+
Enters Post
Home
Flipboard
Home
Recent Apps

(Foreground Task)

(Backgorund Tasks)
User's Action
Home
Ingress
Home
G+
Enters Post
Home
Flipboard
Home
Recent Apps
G+

(Foreground Task)

(Backgorund Tasks)
Why Manipulate?
Why Manipulate default behavior?
Multiple entry points to the app
Launcher
Notification
Share Intent

“Singleton” Activity
Activity that wants to share data between instances.
(example: browser)
Changing default behavior
<activity> tag attributes in AndroidManifest.xml
Launchmode
TaskAffinity
...

Adding flags to Intent used to launch the activity
FLAG_ACTIVITY_NEW_TASK
FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_SINGLE_TOP

Warning – only sounds easy.
Android:taskAffinity
Used to determine the task that should hold the
activity
Task that has the same affinity value

By Default: all activities share the same affinity
(package name)
Task's affinity is the affinity of the activity that created
it (also called root activity)
Example
Manifest:

Activity A is launched
Example
Manifest:

Activity A is launched

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A's code:
Intent I = new Intent (this,ActvitiyB.class)
startActvitiy(i)

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A's code:
Intent I = new Intent (this,ActvitiyB.class)
startActvitiy(i)

Activity B
Activity A
Com.myApp
What?
Why like this?
Activity B added to the same task although it had
different affinity
In order to create a new task – you need to add
FLAG_ACTIVITY_NEW_TASK to the launching
intent
Example
Manifest:

Activity A is launched

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A's code:
Intent I = new Intent (this,ActvitiyB.class)
I.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActvitiy(i)

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A's code:
Intent I = new Intent (this,ActvitiyB.class)
I.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActvitiy(i)

Activity A
Com.myApp

Activity B
Com.something
Android:launchMode
Specifies how the Activity should be launched
Four different modes:
Standard (default)
Single Top
Single Task
Single Instance
Launch Mode: Standard
New instance is created in the calling activity's task
Activity can have multiple instances
Instances can reside in different tasks
One task can have multiple instances
Example
Manifest:

Activity A is launched

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B (no flags)

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B (no flags)

Activity B
Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B (no flags)
Activity B launches Activity A

Activity B
Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B (no flags)
Activity B launches Activity A

Activity A
Activity B
Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B (no flags)
Activity B launches Activity A
Activity A launches Activity B (with flag NEW_TASK)
Activity A
Activity B
Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B (no flags)
Activity B launches Activity A
Activity A launches Activity B (with flag NEW_TASK)
Activity A
Activity B
Activity A
Com.myApp

Activity B
Com.something
Example
Manifest:

Activity A is launched
Activity A launches Activity B (no flags)
Activity B launches Activity A
Activity A launches Activity B (with flag NEW_TASK)
Activity B launches Activity A
Activity A
Activity B
Activity A
Com.myApp

Activity B
Com.something
Example
Manifest:

Activity A is launched
Activity A launches Activity B (no flags)
Activity B launches Activity A
Activity A launches Activity B (with flag NEW_TASK)
Activity B launches Activity A
Activity A
Activity B

Activity A

Activity A

Activity B

Com.myApp

Com.something
Launch Mode: Single Top
If an instance of the activity is at the top of the stack –
new activity will not be create, instead –
onNewIntent() will be called.
Activity can have multiple instances
Instances can reside in different tasks
One task can have multiple instances
Example
Manifest:

Activity A is launched

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
User pulls the notification bar and clicks on notification
that fires Activity intent to Activity A

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
User pulls the notification bar and clicks on notification
that fires Activity intent to Activity A

OnNewIntent(..)

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
User pulls the notification bar and clicks on notification
that fires Activity intent to Activity A
Activity A launches Activity B (no flags)

OnNewIntent(..)

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
User pulls the notification bar and clicks on notification
that fires Activity intent to Activity A
Activity A launches Activity B (no flags)

Activity B
Activity A
Com.myApp
Example
Manifest:

Activity A is launched
User pulls the notification bar and clicks on notification
that fires Activity intent to Activity A
Activity A launches Activity B (no flags)
Activity B launches Activity A

Activity B
Activity A
Com.myApp
Example
Manifest:

Activity A is launched
User pulls the notification bar and clicks on notification
that fires Activity intent to Activity A
Activity A launches Activity B (no flags)
Activity B launches Activity A
Activity A
Activity B
Activity A
Com.myApp
Launch Mode: Single Task
New task is created for the Activity and the Activity is
its root Activity
If an instance of the Activity already exists – system
will reroute the intent to onNewIntent() callback and
won't create new instance.
Activity can have only one instance
Activity is always the root of the task
Example
Manifest:

Activity A is launched

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Acitivity A launches Activity B

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Acitivity A launches Activity B

Activity B
Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Acitivity A launches Activity B
Activity B launches Activity C with FLAG_NEW_TASK

Activity B
Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Acitivity A launches Activity B
Activity B launches Activity C with FLAG_NEW_TASK

Activity B
Activity A
Com.myApp

Activity C
Com.something
Example
Manifest:

Activity A is launched
Acitivity A launches Activity B
Activity B launches Activity C with FLAG_NEW_TASK
Activity C launches Activity A

Activity B
Activity A
Com.myApp

Activity C
Com.something
Example
Manifest:

Activity A is launched
Acitivity A launches Activity B
Activity B launches Activity C with FLAG_NEW_TASK
Activity C launches Activity A

OnNewIntent(..)

Activity A
Com.myApp

Activity C
Com.something
Launch Mode: Single Instance
Same as Single Task except that it is the only activity
in its task
New activities will be launched in different tasks.

Activity can have only one instance
Activity is always the root of the task
Activity is the only member of its task
Example
Manifest:

Activity A is launched

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B

Activity A
Com.myApp

Activity B
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C

Activity A
Com.myApp

Activity B
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C

Activity C
Activity A
Com.myApp

Activity B
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C
Activity C launches Activity A

Activity C
Activity A
Com.myApp

Activity B
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C
Activity C launches Activity A

Activity C
OnNewIntent(..)

Activity A
Com.myApp

Activity B
Com.myApp
FLAG_ACTIVITY_NEW_TASK
Start the activity in a new task. If a task is already
running for the activity you are now starting, that task
is brought to the foreground with its last state restored
and the activity receives the new intent in
onNewIntent().
Example
Manifest:

Activity A is launched

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B

Activity B
Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C with
FLAG_NEW_TASK

Activity B
Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C with
FLAG_NEW_TASK

Activity B
Activity A
Com.myApp

Activity C
Com.something
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C with
FLAG_NEW_TASK
Activity C launches Activity D

Activity B
Activity A
Com.myApp

Activity C
Com.something
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C with
FLAG_NEW_TASK
Activity C launches Activity D

Activity B

Activity D

Activity A

Activity C

Com.myApp

Com.something
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C with
FLAG_NEW_TASK
Activity C launches Activity D
User switches to com.myApp
Activity B

Activity D

Activity A

Activity C

Com.myApp

Com.something
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C with
FLAG_NEW_TASK
Activity C launches Activity D
User switches to com.myApp
Activity B launches Activity C with
FLAG_NEW_TASK

Activity B

Activity D

Activity A

Activity C

Com.myApp

Com.something
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C with
FLAG_NEW_TASK
Activity C launches Activity D

onResume()

User switches to com.myApp
Activity B launches Activity C with
FLAG_NEW_TASK

Activity B

Activity D

Activity A

Activity C

Com.myApp

Com.something
Easy – but may be tricky
Example
Manifest:

Activity A is launched

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B

Activity B
Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C with
FLAG_NEW_TASK

Activity B
Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C with
FLAG_NEW_TASK

Activity B
Activity A
Com.myApp

Activity C
Com.something
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C with
FLAG_NEW_TASK
Activity C launches Activity D

Activity B
Activity A
Com.myApp

Activity C
Com.something
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C with
FLAG_NEW_TASK
Activity C launches Activity D

Activity B

Activity D

Activity A

Activity C

Com.myApp

Com.something
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C with
FLAG_NEW_TASK
Activity C launches Activity D
User switches to com.myApp
Activity B

Activity D

Activity A

Activity C

Com.myApp

Com.something
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C with
FLAG_NEW_TASK
Activity C launches Activity D
User switches to com.myApp
Activity B launches Activity D with
FLAG_NEW_TASK

Activity B

Activity D

Activity A

Activity C

Com.myApp

Com.something
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C with
FLAG_NEW_TASK
Activity C launches Activity D
User switches to com.myApp
Activity B launches Activity D with
FLAG_NEW_TASK

Activity D
Activity B

Activity D

Activity A

Activity C

Com.myApp

Com.something
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C with
FLAG_NEW_TASK
Activity C launches Activity D
User switches to com.myApp
Activity B launches Activity D with
FLAG_NEW_TASK

Activity D
Activity B

Activity D

Activity A

Activity C

Com.myApp

Com.something
New instance of D created!
Why another Instance was created?
A matching task is a task that has the same launching
intent as the intent used to launch the activity.
Although Activity D has the same affinity as the task
that was created by Activity C, the launching intent is
different.
The result: instead of onResume() - > new Instance.
Example
Manifest:

Activity A is launched

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B

Activity B
Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C with
FLAG_NEW_TASK

Activity B
Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C with
FLAG_NEW_TASK

Activity B
Activity A
Com.myApp

Activity C
Com.something
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C with
FLAG_NEW_TASK
Activity C launches Activity D and calls finish()

Activity B
Activity A
Com.myApp

Activity C
Com.something
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C with
FLAG_NEW_TASK
Activity C launches Activity D and calls finish()

Activity B
Activity A
Com.myApp

Activity C
D
Com.something
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C with
FLAG_NEW_TASK
Activity C launches Activity D and calls finish()
User switches to com.myApp
Activity B
Activity A
Com.myApp

Activity C
D
Com.something
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C with
FLAG_NEW_TASK
Activity C launches Activity D and calls finish()
User switches to com.myApp
Activity B launches Activity C with
FLAG_NEW_TASK

Activity B
Activity A
Com.myApp

Activity C
D
Com.something
Example
Manifest:

Activity A is launched
Activity A launches Activity B
Activity B launches Activity C with
FLAG_NEW_TASK
Activity C launches Activity D and calls finish()
User switches to com.myApp
Activity B launches Activity C with
FLAG_NEW_TASK

onResume()
Activity B
Activity A
Com.myApp

Activity C
D
Com.something
Asked for Activity C - > Got activiy D.
It is not over yet...
Example
Manifest:

Activity A is launched

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B with
startActivityForResult()

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B with
startActivityForResult()

OnActivityResult(...)

Activity A
Com.myApp
Example
Manifest:

Activity A is launched
Activity A launches Activity B with
startActivityForResult()

Activity A
Com.myApp

Activity B
Com.myApp
StartActivityForResult
If an activity calls startActivityForResult and new task
is created – onActivityResult is called immediately.
“its not bug – its a feature” approach.
Tips
Abd shell dumpsys activity
Don't wait for the end of the development to apply
flags, affinities and launch modes.
It is iterative on-going process.
Questions?

ran@mobiliup.com
+Ran Nachmany

Weitere ähnliche Inhalte

Was ist angesagt?

Java Serialization
Java SerializationJava Serialization
Java Serialization
imypraz
 

Was ist angesagt? (20)

Android Fragment
Android FragmentAndroid Fragment
Android Fragment
 
05 intent
05 intent05 intent
05 intent
 
Collections in Java Notes
Collections in Java NotesCollections in Java Notes
Collections in Java Notes
 
List in java
List in javaList in java
List in java
 
Android Task Hijacking
Android Task HijackingAndroid Task Hijacking
Android Task Hijacking
 
Android Basic Components
Android Basic ComponentsAndroid Basic Components
Android Basic Components
 
Android Lesson 3 - Intent
Android Lesson 3 - IntentAndroid Lesson 3 - Intent
Android Lesson 3 - Intent
 
Android: Intent, Intent Filter, Broadcast Receivers
Android: Intent, Intent Filter, Broadcast ReceiversAndroid: Intent, Intent Filter, Broadcast Receivers
Android: Intent, Intent Filter, Broadcast Receivers
 
CQRS and Event Sourcing in a Symfony application
CQRS and Event Sourcing in a Symfony applicationCQRS and Event Sourcing in a Symfony application
CQRS and Event Sourcing in a Symfony application
 
Java 8 Stream API. A different way to process collections.
Java 8 Stream API. A different way to process collections.Java 8 Stream API. A different way to process collections.
Java 8 Stream API. A different way to process collections.
 
SQLITE Android
SQLITE AndroidSQLITE Android
SQLITE Android
 
Creating the first app with android studio
Creating the first app with android studioCreating the first app with android studio
Creating the first app with android studio
 
Java Serialization
Java SerializationJava Serialization
Java Serialization
 
Collections - Maps
Collections - Maps Collections - Maps
Collections - Maps
 
ASP.NET Page Life Cycle
ASP.NET Page Life CycleASP.NET Page Life Cycle
ASP.NET Page Life Cycle
 
Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?
 
Intro to UIKit • Made by Many
Intro to UIKit • Made by ManyIntro to UIKit • Made by Many
Intro to UIKit • Made by Many
 
Android Components & Manifest
Android Components & ManifestAndroid Components & Manifest
Android Components & Manifest
 
Java codes
Java codesJava codes
Java codes
 
MVVM with SwiftUI and Combine
MVVM with SwiftUI and CombineMVVM with SwiftUI and Combine
MVVM with SwiftUI and Combine
 

Ähnlich wie Manipulating Android tasks and back stack

Android application model
Android application modelAndroid application model
Android application model
magicshui
 
Day 3: Getting Active Through Activities
Day 3: Getting Active Through ActivitiesDay 3: Getting Active Through Activities
Day 3: Getting Active Through Activities
Ahsanul Karim
 
Day 3: Getting Active Through Activities
Day 3: Getting Active Through ActivitiesDay 3: Getting Active Through Activities
Day 3: Getting Active Through Activities
Ahsanul Karim
 
Unit 5 Activity and Activity Life Cycle.pptx
Unit 5 Activity and Activity Life Cycle.pptxUnit 5 Activity and Activity Life Cycle.pptx
Unit 5 Activity and Activity Life Cycle.pptx
ShantanuDharekar
 
Multiple Activity and Navigation Primer
Multiple Activity and Navigation PrimerMultiple Activity and Navigation Primer
Multiple Activity and Navigation Primer
Ahsanul Karim
 
android_mod_3.useful for bca students for their last sem
android_mod_3.useful for bca students for their last semandroid_mod_3.useful for bca students for their last sem
android_mod_3.useful for bca students for their last sem
aswinbiju1652
 

Ähnlich wie Manipulating Android tasks and back stack (20)

Android App Development 20150507
Android App Development 20150507Android App Development 20150507
Android App Development 20150507
 
Android App Development 20150430
Android App Development 20150430Android App Development 20150430
Android App Development 20150430
 
Activity
ActivityActivity
Activity
 
Activity
ActivityActivity
Activity
 
Activity
ActivityActivity
Activity
 
Activity
ActivityActivity
Activity
 
Android application model
Android application modelAndroid application model
Android application model
 
Day 3: Getting Active Through Activities
Day 3: Getting Active Through ActivitiesDay 3: Getting Active Through Activities
Day 3: Getting Active Through Activities
 
Day 3: Getting Active Through Activities
Day 3: Getting Active Through ActivitiesDay 3: Getting Active Through Activities
Day 3: Getting Active Through Activities
 
Using android's action bar
Using android's action barUsing android's action bar
Using android's action bar
 
Unit 5 Activity and Activity Life Cycle.pptx
Unit 5 Activity and Activity Life Cycle.pptxUnit 5 Activity and Activity Life Cycle.pptx
Unit 5 Activity and Activity Life Cycle.pptx
 
Create an other activity lesson 3
Create an other activity lesson 3Create an other activity lesson 3
Create an other activity lesson 3
 
Multiple Activity and Navigation Primer
Multiple Activity and Navigation PrimerMultiple Activity and Navigation Primer
Multiple Activity and Navigation Primer
 
Create New Android Activity
Create New Android ActivityCreate New Android Activity
Create New Android Activity
 
android_mod_3.useful for bca students for their last sem
android_mod_3.useful for bca students for their last semandroid_mod_3.useful for bca students for their last sem
android_mod_3.useful for bca students for their last sem
 
Chapter 2 lesson-1 adding the action bar
Chapter 2 lesson-1 adding the action barChapter 2 lesson-1 adding the action bar
Chapter 2 lesson-1 adding the action bar
 
Android app fundamentals
Android app fundamentalsAndroid app fundamentals
Android app fundamentals
 
Advance Java Programming(CM5I) Event handling
Advance Java Programming(CM5I) Event handlingAdvance Java Programming(CM5I) Event handling
Advance Java Programming(CM5I) Event handling
 
Hello android example.
Hello android example.Hello android example.
Hello android example.
 
iOS Development (Part 2)
iOS Development (Part 2)iOS Development (Part 2)
iOS Development (Part 2)
 

Kürzlich hochgeladen

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Kürzlich hochgeladen (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 

Manipulating Android tasks and back stack