diff --git a/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java b/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java index d153107403e2d..67e170fa30640 100644 --- a/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java +++ b/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java @@ -336,8 +336,8 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat } @Override - public void onResume() { - super.onResume(); + public void onStart() { + super.onStart(); if (mState != STATE_INITIALIZING && mCurrentPrinter != null) { mPrinterRegistry.setTrackedPrinter(mCurrentPrinter.getId()); } @@ -379,10 +379,15 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat } } + super.onPause(); + } + + @Override + protected void onStop() { mPrinterAvailabilityDetector.cancel(); mPrinterRegistry.setTrackedPrinter(null); - super.onPause(); + super.onStop(); } @Override diff --git a/services/print/java/com/android/server/print/UserState.java b/services/print/java/com/android/server/print/UserState.java index f37bb9eb67753..6a50a6eaff21c 100644 --- a/services/print/java/com/android/server/print/UserState.java +++ b/services/print/java/com/android/server/print/UserState.java @@ -343,9 +343,7 @@ final class UserState implements PrintSpoolerCallbacks, PrintServiceCallbacks { public void createPrinterDiscoverySession(IPrinterDiscoveryObserver observer) { synchronized (mLock) { throwIfDestroyedLocked(); - if (mActiveServices.isEmpty()) { - return; - } + if (mPrinterDiscoverySession == null) { // If we do not have a session, tell all service to create one. mPrinterDiscoverySession = new PrinterDiscoverySessionMediator(mContext) {