Merge "Comment out CustomEditTextPreferenceTest which is failing..."
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index 33deca7..ccbf21b 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -751,6 +751,14 @@
private static final String KEYBOARD_SHORTCUTS_RECEIVER_PKG_NAME = "com.android.systemui";
+ private static final int LOG_AM_ON_CREATE_CALLED = 30057;
+ private static final int LOG_AM_ON_START_CALLED = 30059;
+ private static final int LOG_AM_ON_RESUME_CALLED = 30022;
+ private static final int LOG_AM_ON_PAUSE_CALLED = 30021;
+ private static final int LOG_AM_ON_STOP_CALLED = 30049;
+ private static final int LOG_AM_ON_RESTART_CALLED = 30058;
+ private static final int LOG_AM_ON_DESTROY_CALLED = 30060;
+
private static class ManagedDialog {
Dialog mDialog;
Bundle mArgs;
@@ -7097,6 +7105,7 @@
} else {
onCreate(icicle);
}
+ writeEventLog(LOG_AM_ON_CREATE_CALLED, "performCreate");
mActivityTransitionState.readState(icicle);
mVisibleFromClient = !mWindow.getWindowStyle().getBoolean(
@@ -7110,12 +7119,14 @@
onNewIntent(intent);
}
- final void performStart() {
+ final void performStart(String reason) {
mActivityTransitionState.setEnterActivityOptions(this, getActivityOptions());
mFragments.noteStateNotSaved();
mCalled = false;
mFragments.execPendingActions();
mInstrumentation.callActivityOnStart(this);
+ writeEventLog(LOG_AM_ON_START_CALLED, reason);
+
if (!mCalled) {
throw new SuperNotCalledException(
"Activity " + mComponent.toShortString() +
@@ -7184,7 +7195,7 @@
* The option to not start immediately is needed in case a transaction with
* multiple lifecycle transitions is in progress.
*/
- final void performRestart(boolean start) {
+ final void performRestart(boolean start, String reason) {
mCanEnterPictureInPicture = true;
mFragments.noteStateNotSaved();
@@ -7217,19 +7228,20 @@
mCalled = false;
mInstrumentation.callActivityOnRestart(this);
+ writeEventLog(LOG_AM_ON_RESTART_CALLED, reason);
if (!mCalled) {
throw new SuperNotCalledException(
"Activity " + mComponent.toShortString() +
" did not call through to super.onRestart()");
}
if (start) {
- performStart();
+ performStart(reason);
}
}
}
- final void performResume(boolean followedByPause) {
- performRestart(true /* start */);
+ final void performResume(boolean followedByPause, String reason) {
+ performRestart(true /* start */, reason);
mFragments.execPendingActions();
@@ -7248,6 +7260,7 @@
mCalled = false;
// mResumed is set by the instrumentation
mInstrumentation.callActivityOnResume(this);
+ writeEventLog(LOG_AM_ON_RESUME_CALLED, reason);
if (!mCalled) {
throw new SuperNotCalledException(
"Activity " + mComponent.toShortString() +
@@ -7284,6 +7297,7 @@
mFragments.dispatchPause();
mCalled = false;
onPause();
+ writeEventLog(LOG_AM_ON_PAUSE_CALLED, "performPause");
mResumed = false;
if (!mCalled && getApplicationInfo().targetSdkVersion
>= android.os.Build.VERSION_CODES.GINGERBREAD) {
@@ -7291,7 +7305,6 @@
"Activity " + mComponent.toShortString() +
" did not call through to super.onPause()");
}
- mResumed = false;
}
final void performUserLeaving() {
@@ -7299,7 +7312,7 @@
onUserLeaveHint();
}
- final void performStop(boolean preserveWindow) {
+ final void performStop(boolean preserveWindow, String reason) {
mDoReportFullyDrawn = false;
mFragments.doLoaderStop(mChangingConfigurations /*retain*/);
@@ -7322,6 +7335,7 @@
mCalled = false;
mInstrumentation.callActivityOnStop(this);
+ writeEventLog(LOG_AM_ON_STOP_CALLED, reason);
if (!mCalled) {
throw new SuperNotCalledException(
"Activity " + mComponent.toShortString() +
@@ -7349,6 +7363,7 @@
mWindow.destroy();
mFragments.dispatchDestroy();
onDestroy();
+ writeEventLog(LOG_AM_ON_DESTROY_CALLED, "performDestroy");
mFragments.doLoaderDestroy();
if (mVoiceInteractor != null) {
mVoiceInteractor.detachActivity();
@@ -7823,6 +7838,12 @@
}
}
+ /** Log a lifecycle event for current user id and component class. */
+ private void writeEventLog(int event, String reason) {
+ EventLog.writeEvent(event, UserHandle.myUserId(), getComponentName().getClassName(),
+ reason);
+ }
+
class HostCallbacks extends FragmentHostCallback<Activity> {
public HostCallbacks() {
super(Activity.this /*activity*/);
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 302ffed..21d146a 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -208,9 +208,6 @@
public static final boolean DEBUG_ORDER = false;
private static final long MIN_TIME_BETWEEN_GCS = 5*1000;
private static final int SQLITE_MEM_RELEASED_EVENT_LOG_TAG = 75003;
- private static final int LOG_AM_ON_PAUSE_CALLED = 30021;
- private static final int LOG_AM_ON_RESUME_CALLED = 30022;
- private static final int LOG_AM_ON_STOP_CALLED = 30049;
/** Type for IActivityManager.serviceDoneExecuting: anonymous operation */
public static final int SERVICE_DONE_EXECUTING_ANON = 0;
@@ -2924,7 +2921,7 @@
}
// Start
- activity.performStart();
+ activity.performStart("handleStartActivity");
r.setState(ON_START);
if (pendingActions == null) {
@@ -3113,7 +3110,7 @@
checkAndBlockForNetworkAccess();
deliverNewIntents(r, intents);
if (resumed) {
- r.activity.performResume(false);
+ r.activity.performResume(false, "performNewIntents");
r.activity.mTemporaryPause = false;
}
@@ -3735,10 +3732,7 @@
deliverResults(r, r.pendingResults);
r.pendingResults = null;
}
- r.activity.performResume(r.startsNotResumed);
-
- EventLog.writeEvent(LOG_AM_ON_RESUME_CALLED, UserHandle.myUserId(),
- r.activity.getComponentName().getClassName(), reason);
+ r.activity.performResume(r.startsNotResumed, reason);
r.state = null;
r.persistentState = null;
@@ -3906,7 +3900,8 @@
@Override
public void handlePauseActivity(IBinder token, boolean finished, boolean userLeaving,
- int configChanges, boolean dontReport, PendingTransactionActions pendingActions) {
+ int configChanges, boolean dontReport, PendingTransactionActions pendingActions,
+ String reason) {
ActivityClientRecord r = mActivities.get(token);
if (r != null) {
if (userLeaving) {
@@ -3914,7 +3909,7 @@
}
r.activity.mConfigChangeFlags |= configChanges;
- performPauseActivity(r, finished, "handlePauseActivity", pendingActions);
+ performPauseActivity(r, finished, reason, pendingActions);
// Make sure any pending writes are now committed.
if (r.isPreHoneycomb()) {
@@ -4007,8 +4002,6 @@
try {
r.activity.mCalled = false;
mInstrumentation.callActivityOnPause(r.activity);
- EventLog.writeEvent(LOG_AM_ON_PAUSE_CALLED, UserHandle.myUserId(),
- r.activity.getComponentName().getClassName(), reason);
if (!r.activity.mCalled) {
throw new SuperNotCalledException("Activity " + safeToComponentShortString(r.intent)
+ " did not call through to super.onPause()");
@@ -4119,7 +4112,7 @@
}
try {
- r.activity.performStop(false /*preserveWindow*/);
+ r.activity.performStop(false /*preserveWindow*/, reason);
} catch (SuperNotCalledException e) {
throw e;
} catch (Exception e) {
@@ -4131,8 +4124,6 @@
}
}
r.setState(ON_STOP);
- EventLog.writeEvent(LOG_AM_ON_STOP_CALLED, UserHandle.myUserId(),
- r.activity.getComponentName().getClassName(), reason);
if (shouldSaveState && !isPreP) {
callActivityOnSaveInstanceState(r);
@@ -4169,12 +4160,12 @@
@Override
public void handleStopActivity(IBinder token, boolean show, int configChanges,
- PendingTransactionActions pendingActions) {
+ PendingTransactionActions pendingActions, String reason) {
final ActivityClientRecord r = mActivities.get(token);
r.activity.mConfigChangeFlags |= configChanges;
final StopInfo stopInfo = new StopInfo();
- performStopActivityInner(r, stopInfo, show, true, "handleStopActivity");
+ performStopActivityInner(r, stopInfo, show, true, reason);
if (localLOGV) Slog.v(
TAG, "Finishing stop of " + r + ": show=" + show
@@ -4209,7 +4200,7 @@
public void performRestartActivity(IBinder token, boolean start) {
ActivityClientRecord r = mActivities.get(token);
if (r.stopped) {
- r.activity.performRestart(start);
+ r.activity.performRestart(start, "performRestartActivity");
if (start) {
r.setState(ON_START);
}
@@ -4232,7 +4223,7 @@
// we are back active so skip it.
unscheduleGcIdler();
- r.activity.performRestart(true /* start */);
+ r.activity.performRestart(true /* start */, "handleWindowVisibility");
r.setState(ON_START);
}
if (r.activity.mDecor != null) {
@@ -4272,7 +4263,7 @@
}
} else {
if (r.stopped && r.activity.mVisibleFromServer) {
- r.activity.performRestart(true /* start */);
+ r.activity.performRestart(true /* start */, "handleSleeping");
r.setState(ON_START);
}
}
@@ -4380,7 +4371,7 @@
checkAndBlockForNetworkAccess();
deliverResults(r, results);
if (resumed) {
- r.activity.performResume(false);
+ r.activity.performResume(false, "handleSendResult");
r.activity.mTemporaryPause = false;
}
}
diff --git a/core/java/android/app/ClientTransactionHandler.java b/core/java/android/app/ClientTransactionHandler.java
index 310965e..cb52a85 100644
--- a/core/java/android/app/ClientTransactionHandler.java
+++ b/core/java/android/app/ClientTransactionHandler.java
@@ -65,7 +65,8 @@
/** Pause the activity. */
public abstract void handlePauseActivity(IBinder token, boolean finished, boolean userLeaving,
- int configChanges, boolean dontReport, PendingTransactionActions pendingActions);
+ int configChanges, boolean dontReport, PendingTransactionActions pendingActions,
+ String reason);
/** Resume the activity. */
public abstract void handleResumeActivity(IBinder token, boolean clearHide, boolean isForward,
@@ -73,7 +74,7 @@
/** Stop the activity. */
public abstract void handleStopActivity(IBinder token, boolean show, int configChanges,
- PendingTransactionActions pendingActions);
+ PendingTransactionActions pendingActions, String reason);
/** Report that activity was stopped to server. */
public abstract void reportStop(PendingTransactionActions pendingActions);
diff --git a/core/java/android/app/servertransaction/PauseActivityItem.java b/core/java/android/app/servertransaction/PauseActivityItem.java
index 91e73cd..578f0e3 100644
--- a/core/java/android/app/servertransaction/PauseActivityItem.java
+++ b/core/java/android/app/servertransaction/PauseActivityItem.java
@@ -43,7 +43,7 @@
PendingTransactionActions pendingActions) {
Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "activityPause");
client.handlePauseActivity(token, mFinished, mUserLeaving, mConfigChanges, mDontReport,
- pendingActions);
+ pendingActions, "PAUSE_ACTIVITY_ITEM");
Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER);
}
diff --git a/core/java/android/app/servertransaction/StopActivityItem.java b/core/java/android/app/servertransaction/StopActivityItem.java
index f955a90..0a61fab 100644
--- a/core/java/android/app/servertransaction/StopActivityItem.java
+++ b/core/java/android/app/servertransaction/StopActivityItem.java
@@ -38,7 +38,8 @@
public void execute(ClientTransactionHandler client, IBinder token,
PendingTransactionActions pendingActions) {
Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "activityStop");
- client.handleStopActivity(token, mShowWindow, mConfigChanges, pendingActions);
+ client.handleStopActivity(token, mShowWindow, mConfigChanges, pendingActions,
+ "STOP_ACTIVITY_ITEM");
Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER);
}
diff --git a/core/java/android/app/servertransaction/TransactionExecutor.java b/core/java/android/app/servertransaction/TransactionExecutor.java
index 840fef8..b66d61b 100644
--- a/core/java/android/app/servertransaction/TransactionExecutor.java
+++ b/core/java/android/app/servertransaction/TransactionExecutor.java
@@ -186,11 +186,11 @@
case ON_PAUSE:
mTransactionHandler.handlePauseActivity(r.token, false /* finished */,
false /* userLeaving */, 0 /* configChanges */,
- true /* dontReport */, mPendingActions);
+ true /* dontReport */, mPendingActions, "LIFECYCLER_PAUSE_ACTIVITY");
break;
case ON_STOP:
mTransactionHandler.handleStopActivity(r.token, false /* show */,
- 0 /* configChanges */, mPendingActions);
+ 0 /* configChanges */, mPendingActions, "LIFECYCLER_STOP_ACTIVITY");
break;
case ON_DESTROY:
mTransactionHandler.handleDestroyActivity(r.token, false /* finishing */,
diff --git a/services/core/java/com/android/server/am/EventLogTags.logtags b/services/core/java/com/android/server/am/EventLogTags.logtags
index cb2957d..9caef4a 100644
--- a/services/core/java/com/android/server/am/EventLogTags.logtags
+++ b/services/core/java/com/android/server/am/EventLogTags.logtags
@@ -125,3 +125,12 @@
30055 am_uid_idle (UID|1|5)
# Note when a service is being forcibly stopped because its app went idle.
30056 am_stop_idle_service (UID|1|5),(Component Name|3)
+
+# The activity's onCreate has been called.
+30057 am_on_create_called (User|1|5),(Component Name|3),(Reason|3)
+# The activity's onRestart has been called.
+30058 am_on_restart_called (User|1|5),(Component Name|3),(Reason|3)
+# The activity's onStart has been called.
+30059 am_on_start_called (User|1|5),(Component Name|3),(Reason|3)
+# The activity's onDestroy has been called.
+30060 am_on_destroy_called (User|1|5),(Component Name|3),(Reason|3)
\ No newline at end of file