Merge "Immediately deliver new intent to paused activities." into nyc-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
10bafbd9f9
@@ -954,22 +954,18 @@ final class ActivityRecord {
|
|||||||
stack != null && stack.topRunningActivityLocked() == this;
|
stack != null && stack.topRunningActivityLocked() == this;
|
||||||
final boolean isTopActivityWhileSleeping =
|
final boolean isTopActivityWhileSleeping =
|
||||||
service.isSleepingLocked() && isTopActivityInStack;
|
service.isSleepingLocked() && isTopActivityInStack;
|
||||||
final boolean isTopActivityInMinimizedDockedStack = isTopActivityInStack
|
|
||||||
&& stack.mStackId == DOCKED_STACK_ID && mStackSupervisor.mIsDockMinimized
|
|
||||||
&& state == ActivityState.PAUSED;
|
|
||||||
|
|
||||||
// We want to immediately deliver the intent to the activity if:
|
// We want to immediately deliver the intent to the activity if:
|
||||||
// - It is the resumed activity.
|
// - It is currently resumed or paused. i.e. it is currently visible to the user and we want
|
||||||
|
// the user to see the visual effects caused by the intent delivery now.
|
||||||
// - The device is sleeping and it is the top activity behind the lock screen (b/6700897).
|
// - The device is sleeping and it is the top activity behind the lock screen (b/6700897).
|
||||||
// - It is the top activity in a minimized docked stack. In this case the activity will be
|
if ((state == ActivityState.RESUMED || state == ActivityState.PAUSED
|
||||||
// temporarily resumed then paused again on the client side.
|
|| isTopActivityWhileSleeping) && app != null && app.thread != null) {
|
||||||
if ((state == ActivityState.RESUMED || isTopActivityWhileSleeping
|
|
||||||
|| isTopActivityInMinimizedDockedStack) && app != null && app.thread != null) {
|
|
||||||
try {
|
try {
|
||||||
ArrayList<ReferrerIntent> ar = new ArrayList<>(1);
|
ArrayList<ReferrerIntent> ar = new ArrayList<>(1);
|
||||||
ar.add(rintent);
|
ar.add(rintent);
|
||||||
app.thread.scheduleNewIntent(
|
app.thread.scheduleNewIntent(
|
||||||
ar, appToken, isTopActivityInMinimizedDockedStack /* andPause */);
|
ar, appToken, state == ActivityState.PAUSED /* andPause */);
|
||||||
unsent = false;
|
unsent = false;
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
Slog.w(TAG, "Exception thrown sending new intent to " + this, e);
|
Slog.w(TAG, "Exception thrown sending new intent to " + this, e);
|
||||||
|
|||||||
Reference in New Issue
Block a user