Loading services/core/java/com/android/server/wm/ActivityTaskSupervisor.java +9 −1 Original line number Diff line number Diff line Loading @@ -125,6 +125,7 @@ import android.net.Uri; import android.os.Binder; import android.os.Build; import android.os.Bundle; import android.os.DeadObjectException; import android.os.Debug; import android.os.Handler; import android.os.IBinder; Loading Loading @@ -1045,16 +1046,23 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks { // transaction. mService.getLifecycleManager().dispatchPendingTransaction(proc.getThread()); } final boolean isSuccessful; try { mService.getLifecycleManager().scheduleTransactionItems( isSuccessful = mService.getLifecycleManager().scheduleTransactionItems( proc.getThread(), // Immediately dispatch the transaction, so that if it fails, the server can // restart the process and retry now. true /* shouldDispatchImmediately */, launchActivityItem, lifecycleItem); } catch (RemoteException e) { // TODO(b/323801078): remove Exception when cleanup return e; } if (com.android.window.flags.Flags.cleanupDispatchPendingTransactionsRemoteException() && !isSuccessful) { return new DeadObjectException("Failed to dispatch the ClientTransaction to dead" + " process. See earlier log for more details."); } if (procConfig.seq > mRootWindowContainer.getConfiguration().seq) { // If the seq is increased, there should be something changed (e.g. registered Loading services/core/java/com/android/server/wm/WindowProcessController.java +4 −6 Original line number Diff line number Diff line Loading @@ -36,8 +36,8 @@ import static com.android.server.wm.ActivityRecord.State.PAUSED; import static com.android.server.wm.ActivityRecord.State.PAUSING; import static com.android.server.wm.ActivityRecord.State.RESUMED; import static com.android.server.wm.ActivityRecord.State.STARTED; import static com.android.server.wm.ActivityRecord.State.STOPPING; import static com.android.server.wm.ActivityRecord.State.STOPPED; import static com.android.server.wm.ActivityRecord.State.STOPPING; import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_RELEASE; import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_CONFIGURATION; import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_RELEASE; Loading Loading @@ -69,7 +69,6 @@ import android.content.pm.ServiceInfo; import android.content.res.Configuration; import android.os.Binder; import android.os.Build; import android.os.DeadObjectException; import android.os.FactoryTest; import android.os.LocaleList; import android.os.Message; Loading Loading @@ -458,6 +457,7 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio mAtm.getLifecycleManager().scheduleTransactionItemNow( thread, configurationChangeItem); } catch (Exception e) { // TODO(b/323801078): remove Exception when cleanup Slog.e(TAG_CONFIGURATION, "Failed to schedule ConfigurationChangeItem=" + configurationChangeItem + " owner=" + mOwner, e); } Loading Loading @@ -1793,13 +1793,11 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio // Non-UI process can handle the change directly. mAtm.getLifecycleManager().scheduleTransactionItemNow(thread, transactionItem); } } catch (DeadObjectException e) { } catch (RemoteException e) { // TODO(b/323801078): remove Exception when cleanup // Expected if the process has been killed. Slog.w(TAG_CONFIGURATION, "Failed for dead process. ClientTransactionItem=" + transactionItem + " owner=" + mOwner); } catch (Exception e) { Slog.e(TAG_CONFIGURATION, "Failed to schedule ClientTransactionItem=" + transactionItem + " owner=" + mOwner, e); } } Loading Loading
services/core/java/com/android/server/wm/ActivityTaskSupervisor.java +9 −1 Original line number Diff line number Diff line Loading @@ -125,6 +125,7 @@ import android.net.Uri; import android.os.Binder; import android.os.Build; import android.os.Bundle; import android.os.DeadObjectException; import android.os.Debug; import android.os.Handler; import android.os.IBinder; Loading Loading @@ -1045,16 +1046,23 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks { // transaction. mService.getLifecycleManager().dispatchPendingTransaction(proc.getThread()); } final boolean isSuccessful; try { mService.getLifecycleManager().scheduleTransactionItems( isSuccessful = mService.getLifecycleManager().scheduleTransactionItems( proc.getThread(), // Immediately dispatch the transaction, so that if it fails, the server can // restart the process and retry now. true /* shouldDispatchImmediately */, launchActivityItem, lifecycleItem); } catch (RemoteException e) { // TODO(b/323801078): remove Exception when cleanup return e; } if (com.android.window.flags.Flags.cleanupDispatchPendingTransactionsRemoteException() && !isSuccessful) { return new DeadObjectException("Failed to dispatch the ClientTransaction to dead" + " process. See earlier log for more details."); } if (procConfig.seq > mRootWindowContainer.getConfiguration().seq) { // If the seq is increased, there should be something changed (e.g. registered Loading
services/core/java/com/android/server/wm/WindowProcessController.java +4 −6 Original line number Diff line number Diff line Loading @@ -36,8 +36,8 @@ import static com.android.server.wm.ActivityRecord.State.PAUSED; import static com.android.server.wm.ActivityRecord.State.PAUSING; import static com.android.server.wm.ActivityRecord.State.RESUMED; import static com.android.server.wm.ActivityRecord.State.STARTED; import static com.android.server.wm.ActivityRecord.State.STOPPING; import static com.android.server.wm.ActivityRecord.State.STOPPED; import static com.android.server.wm.ActivityRecord.State.STOPPING; import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_RELEASE; import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_CONFIGURATION; import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_RELEASE; Loading Loading @@ -69,7 +69,6 @@ import android.content.pm.ServiceInfo; import android.content.res.Configuration; import android.os.Binder; import android.os.Build; import android.os.DeadObjectException; import android.os.FactoryTest; import android.os.LocaleList; import android.os.Message; Loading Loading @@ -458,6 +457,7 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio mAtm.getLifecycleManager().scheduleTransactionItemNow( thread, configurationChangeItem); } catch (Exception e) { // TODO(b/323801078): remove Exception when cleanup Slog.e(TAG_CONFIGURATION, "Failed to schedule ConfigurationChangeItem=" + configurationChangeItem + " owner=" + mOwner, e); } Loading Loading @@ -1793,13 +1793,11 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio // Non-UI process can handle the change directly. mAtm.getLifecycleManager().scheduleTransactionItemNow(thread, transactionItem); } } catch (DeadObjectException e) { } catch (RemoteException e) { // TODO(b/323801078): remove Exception when cleanup // Expected if the process has been killed. Slog.w(TAG_CONFIGURATION, "Failed for dead process. ClientTransactionItem=" + transactionItem + " owner=" + mOwner); } catch (Exception e) { Slog.e(TAG_CONFIGURATION, "Failed to schedule ClientTransactionItem=" + transactionItem + " owner=" + mOwner, e); } } Loading