Merge "Added dumsys activity starter" into oc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
ea0de895bb
@@ -4136,7 +4136,8 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
ri.activityInfo.packageName, ri.activityInfo.name));
|
||||
mActivityStarter.startActivityLocked(null, intent, null /*ephemeralIntent*/,
|
||||
null, ri.activityInfo, null /*rInfo*/, null, null, null, null, 0, 0, 0,
|
||||
null, 0, 0, 0, null, false, false, null, null, null);
|
||||
null, 0, 0, 0, null, false, false, null, null, null,
|
||||
"startSetupActivity");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4475,8 +4476,9 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
container.checkEmbeddedAllowedInner(userId, intent, mimeType);
|
||||
|
||||
intent.addFlags(FORCE_NEW_TASK_FLAGS);
|
||||
return mActivityStarter.startActivityMayWait(null, -1, null, intent, mimeType, null, null, null,
|
||||
null, 0, 0, null, null, null, null, false, userId, container, null);
|
||||
return mActivityStarter.startActivityMayWait(null, -1, null, intent, mimeType, null, null,
|
||||
null, null, 0, 0, null, null, null, null, false, userId, container, null,
|
||||
"startActivity");
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -4489,7 +4491,8 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
// TODO: Switch to user app stacks here.
|
||||
return mActivityStarter.startActivityMayWait(caller, -1, callingPackage, intent,
|
||||
resolvedType, null, null, resultTo, resultWho, requestCode, startFlags,
|
||||
profilerInfo, null, null, bOptions, false, userId, null, null);
|
||||
profilerInfo, null, null, bOptions, false, userId, null, null,
|
||||
"startActivityAsUser");
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -4552,7 +4555,8 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
try {
|
||||
int ret = mActivityStarter.startActivityMayWait(null, targetUid, targetPackage, intent,
|
||||
resolvedType, null, null, resultTo, resultWho, requestCode, startFlags, null,
|
||||
null, null, bOptions, ignoreTargetSecurity, userId, null, null);
|
||||
null, null, bOptions, ignoreTargetSecurity, userId, null, null,
|
||||
"startActivityAsCaller");
|
||||
return ret;
|
||||
} catch (SecurityException e) {
|
||||
// XXX need to figure out how to propagate to original app.
|
||||
@@ -4581,7 +4585,7 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
// TODO: Switch to user app stacks here.
|
||||
mActivityStarter.startActivityMayWait(caller, -1, callingPackage, intent, resolvedType,
|
||||
null, null, resultTo, resultWho, requestCode, startFlags, profilerInfo, res, null,
|
||||
bOptions, false, userId, null, null);
|
||||
bOptions, false, userId, null, null, "startActivityAndWait");
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -4595,7 +4599,7 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
// TODO: Switch to user app stacks here.
|
||||
int ret = mActivityStarter.startActivityMayWait(caller, -1, callingPackage, intent,
|
||||
resolvedType, null, null, resultTo, resultWho, requestCode, startFlags,
|
||||
null, null, config, bOptions, false, userId, null, null);
|
||||
null, null, config, bOptions, false, userId, null, null, "startActivityWithConfig");
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -4652,7 +4656,7 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
// TODO: Switch to user app stacks here.
|
||||
return mActivityStarter.startActivityMayWait(null, callingUid, callingPackage, intent,
|
||||
resolvedType, session, interactor, null, null, 0, startFlags, profilerInfo, null,
|
||||
null, bOptions, false, userId, null, null);
|
||||
null, bOptions, false, userId, null, null, "startVoiceActivity");
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -4671,7 +4675,7 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
ALLOW_FULL_ONLY, "startAssistantActivity", null);
|
||||
return mActivityStarter.startActivityMayWait(null, callingUid, callingPackage, intent,
|
||||
resolvedType, null, null, null, null, 0, 0, null, null, null, bOptions, false,
|
||||
userId, null, null);
|
||||
userId, null, null, "startAssistantActivity");
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -4844,7 +4848,7 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
null /*ephemeralIntent*/, r.resolvedType, aInfo, null /*rInfo*/, null,
|
||||
null, resultTo != null ? resultTo.appToken : null, resultWho, requestCode, -1,
|
||||
r.launchedFromUid, r.launchedFromPackage, -1, r.launchedFromUid, 0, options,
|
||||
false, false, null, null, null);
|
||||
false, false, null, null, null, "startNextMatchingActivity");
|
||||
Binder.restoreCallingIdentity(origId);
|
||||
|
||||
r.finishing = wasFinishing;
|
||||
@@ -4876,7 +4880,7 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
final int startActivityInPackage(int uid, String callingPackage,
|
||||
Intent intent, String resolvedType, IBinder resultTo,
|
||||
String resultWho, int requestCode, int startFlags, Bundle bOptions, int userId,
|
||||
IActivityContainer container, TaskRecord inTask) {
|
||||
IActivityContainer container, TaskRecord inTask, String reason) {
|
||||
|
||||
userId = mUserController.handleIncomingUser(Binder.getCallingPid(), Binder.getCallingUid(),
|
||||
userId, false, ALLOW_FULL_ONLY, "startActivityInPackage", null);
|
||||
@@ -4884,7 +4888,7 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
// TODO: Switch to user app stacks here.
|
||||
int ret = mActivityStarter.startActivityMayWait(null, uid, callingPackage, intent,
|
||||
resolvedType, null, null, resultTo, resultWho, requestCode, startFlags,
|
||||
null, null, null, bOptions, false, userId, container, inTask);
|
||||
null, null, null, bOptions, false, userId, container, inTask, reason);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -4892,12 +4896,13 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
public final int startActivities(IApplicationThread caller, String callingPackage,
|
||||
Intent[] intents, String[] resolvedTypes, IBinder resultTo, Bundle bOptions,
|
||||
int userId) {
|
||||
enforceNotIsolatedCaller("startActivities");
|
||||
final String reason = "startActivities";
|
||||
enforceNotIsolatedCaller(reason);
|
||||
userId = mUserController.handleIncomingUser(Binder.getCallingPid(), Binder.getCallingUid(),
|
||||
userId, false, ALLOW_FULL_ONLY, "startActivity", null);
|
||||
userId, false, ALLOW_FULL_ONLY, reason, null);
|
||||
// TODO: Switch to user app stacks here.
|
||||
int ret = mActivityStarter.startActivities(caller, -1, callingPackage, intents,
|
||||
resolvedTypes, resultTo, bOptions, userId);
|
||||
resolvedTypes, resultTo, bOptions, userId, reason);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -4905,11 +4910,12 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
Intent[] intents, String[] resolvedTypes, IBinder resultTo,
|
||||
Bundle bOptions, int userId) {
|
||||
|
||||
final String reason = "startActivityInPackage";
|
||||
userId = mUserController.handleIncomingUser(Binder.getCallingPid(), Binder.getCallingUid(),
|
||||
userId, false, ALLOW_FULL_ONLY, "startActivityInPackage", null);
|
||||
userId, false, ALLOW_FULL_ONLY, reason, null);
|
||||
// TODO: Switch to user app stacks here.
|
||||
int ret = mActivityStarter.startActivities(null, uid, callingPackage, intents, resolvedTypes,
|
||||
resultTo, bOptions, userId);
|
||||
resultTo, bOptions, userId, reason);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -14941,6 +14947,10 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
synchronized (this) {
|
||||
dumpLastANRLocked(pw);
|
||||
}
|
||||
} else if ("starter".equals(cmd)) {
|
||||
synchronized (this) {
|
||||
dumpActivityStarterLocked(pw);
|
||||
}
|
||||
} else if ("recents".equals(cmd) || "r".equals(cmd)) {
|
||||
synchronized (this) {
|
||||
dumpRecentsLocked(fd, pw, args, opti, true, dumpPackage);
|
||||
@@ -15174,6 +15184,11 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
if (dumpAll) {
|
||||
pw.println("-------------------------------------------------------------------------------");
|
||||
}
|
||||
dumpActivityStarterLocked(pw);
|
||||
pw.println();
|
||||
if (dumpAll) {
|
||||
pw.println("-------------------------------------------------------------------------------");
|
||||
}
|
||||
dumpActivitiesLocked(fd, pw, args, opti, dumpAll, dumpClient, dumpPackage);
|
||||
if (mAssociations.size() > 0) {
|
||||
pw.println();
|
||||
@@ -15239,6 +15254,11 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
if (dumpAll) {
|
||||
pw.println("-------------------------------------------------------------------------------");
|
||||
}
|
||||
dumpActivityStarterLocked(pw);
|
||||
pw.println();
|
||||
if (dumpAll) {
|
||||
pw.println("-------------------------------------------------------------------------------");
|
||||
}
|
||||
dumpActivitiesLocked(fd, pw, args, opti, dumpAll, dumpClient, dumpPackage);
|
||||
if (mAssociations.size() > 0) {
|
||||
pw.println();
|
||||
@@ -15258,14 +15278,19 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
}
|
||||
|
||||
private void dumpLastANRLocked(PrintWriter pw) {
|
||||
pw.println("ACTIVITY MANAGER ACTIVITIES (dumpsys activity lastanr)");
|
||||
if (mLastANRState == null) {
|
||||
pw.println("ACTIVITY MANAGER ACTIVITIES (dumpsys activity lastanr)");
|
||||
pw.println(" <no ANR has occurred since boot>");
|
||||
} else {
|
||||
pw.println(mLastANRState);
|
||||
}
|
||||
}
|
||||
|
||||
private void dumpActivityStarterLocked(PrintWriter pw) {
|
||||
pw.println("ACTIVITY MANAGER ACTIVITIES (dumpsys activity starter)");
|
||||
mActivityStarter.dump(pw, "");
|
||||
}
|
||||
|
||||
void dumpActivitiesLocked(FileDescriptor fd, PrintWriter pw, String[] args,
|
||||
int opti, boolean dumpAll, boolean dumpClient, String dumpPackage) {
|
||||
dumpActivitiesLocked(fd, pw, args, opti, dumpAll, dumpClient, dumpPackage,
|
||||
@@ -15292,7 +15317,6 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
if (needSep) {
|
||||
pw.println();
|
||||
}
|
||||
needSep = true;
|
||||
printedAnything = true;
|
||||
mStackSupervisor.dump(pw, " ");
|
||||
}
|
||||
@@ -24015,17 +24039,13 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
if (reason != null) {
|
||||
pw.println(" Reason: " + reason);
|
||||
}
|
||||
pw.println(" mLastHomeActivityStartResult: "
|
||||
+ mActivityStarter.mLastHomeActivityStartResult);
|
||||
final ActivityRecord r = mActivityStarter.mLastHomeActivityStartRecord[0];
|
||||
if (r != null) {
|
||||
pw.println(" mLastHomeActivityStartRecord:");
|
||||
r.dump(pw, " ");
|
||||
}
|
||||
pw.println();
|
||||
mActivityStarter.dump(pw, " ");
|
||||
pw.println();
|
||||
pw.println("-------------------------------------------------------------------------------");
|
||||
dumpActivitiesLocked(null /* fd */, pw, null /* args */, 0 /* opti */,
|
||||
true /* dumpAll */, false /* dumpClient */, null /* dumpPackage */,
|
||||
"ACTIVITY MANAGER ACTIVITIES (dumpsys activity lastanr)");
|
||||
"" /* header */);
|
||||
pw.println();
|
||||
pw.close();
|
||||
|
||||
@@ -24267,7 +24287,7 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
}
|
||||
return mActivityStarter.startActivityMayWait(appThread, -1, callingPackage, intent,
|
||||
resolvedType, null, null, null, null, 0, 0, null, null,
|
||||
null, bOptions, false, callingUser, null, tr);
|
||||
null, bOptions, false, callingUser, null, tr, "AppTaskImpl");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -3920,7 +3920,7 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
|
||||
destIntent, null /*ephemeralIntent*/, null, aInfo, null /*rInfo*/, null,
|
||||
null, parent.appToken, null, 0, -1, parent.launchedFromUid,
|
||||
parent.launchedFromPackage, -1, parent.launchedFromUid, 0, null,
|
||||
false, true, null, null, null);
|
||||
false, true, null, null, null, "navigateUpTo");
|
||||
foundParentInTask = res == ActivityManager.START_SUCCESS;
|
||||
} catch (RemoteException e) {
|
||||
foundParentInTask = false;
|
||||
|
||||
@@ -5180,7 +5180,7 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY);
|
||||
userId = task.userId;
|
||||
int result = mService.startActivityInPackage(callingUid, callingPackage, intent, null,
|
||||
null, null, 0, 0, bOptions, userId, null, task);
|
||||
null, null, 0, 0, bOptions, userId, null, task, "startActivityFromRecents");
|
||||
if (launchStackId == DOCKED_STACK_ID) {
|
||||
setResizingDuringAnimation(task);
|
||||
}
|
||||
|
||||
@@ -115,6 +115,7 @@ import android.os.SystemClock;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.service.voice.IVoiceInteractionSession;
|
||||
import android.text.TextUtils;
|
||||
import android.util.EventLog;
|
||||
import android.util.Slog;
|
||||
|
||||
@@ -124,7 +125,10 @@ import com.android.server.am.ActivityStackSupervisor.PendingActivityLaunch;
|
||||
import com.android.server.pm.InstantAppResolver;
|
||||
import com.android.server.wm.WindowManagerService;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.text.DateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* Controller for interpreting how and then launching activities.
|
||||
@@ -189,9 +193,17 @@ class ActivityStarter {
|
||||
private boolean mUsingVr2dDisplay;
|
||||
|
||||
// Last home activity record we attempted to start
|
||||
final ActivityRecord[] mLastHomeActivityStartRecord = new ActivityRecord[1];
|
||||
private final ActivityRecord[] mLastHomeActivityStartRecord = new ActivityRecord[1];
|
||||
// The result of the last home activity we attempted to start.
|
||||
int mLastHomeActivityStartResult;
|
||||
private int mLastHomeActivityStartResult;
|
||||
// Last activity record we attempted to start
|
||||
private final ActivityRecord[] mLastStartActivityRecord = new ActivityRecord[1];
|
||||
// The result of the last activity we attempted to start.
|
||||
private int mLastStartActivityResult;
|
||||
// Time in milli seconds we attempted to start the last activity.
|
||||
private long mLastStartActivityTimeMs;
|
||||
// The reason we were trying to start the last activity
|
||||
private String mLastStartReason;
|
||||
|
||||
private void reset() {
|
||||
mStartActivity = null;
|
||||
@@ -241,7 +253,37 @@ class ActivityStarter {
|
||||
mUsingVr2dDisplay = false;
|
||||
}
|
||||
|
||||
final int startActivityLocked(IApplicationThread caller, Intent intent, Intent ephemeralIntent,
|
||||
int startActivityLocked(IApplicationThread caller, Intent intent, Intent ephemeralIntent,
|
||||
String resolvedType, ActivityInfo aInfo, ResolveInfo rInfo,
|
||||
IVoiceInteractionSession voiceSession, IVoiceInteractor voiceInteractor,
|
||||
IBinder resultTo, String resultWho, int requestCode, int callingPid, int callingUid,
|
||||
String callingPackage, int realCallingPid, int realCallingUid, int startFlags,
|
||||
ActivityOptions options, boolean ignoreTargetSecurity, boolean componentSpecified,
|
||||
ActivityRecord[] outActivity, ActivityStackSupervisor.ActivityContainer container,
|
||||
TaskRecord inTask, String reason) {
|
||||
|
||||
if (TextUtils.isEmpty(reason)) {
|
||||
throw new IllegalArgumentException("Need to specify a reason.");
|
||||
}
|
||||
mLastStartReason = reason;
|
||||
mLastStartActivityTimeMs = System.currentTimeMillis();
|
||||
mLastStartActivityRecord[0] = null;
|
||||
|
||||
mLastStartActivityResult = startActivity(caller, intent, ephemeralIntent, resolvedType,
|
||||
aInfo, rInfo, voiceSession, voiceInteractor, resultTo, resultWho, requestCode,
|
||||
callingPid, callingUid, callingPackage, realCallingPid, realCallingUid, startFlags,
|
||||
options, ignoreTargetSecurity, componentSpecified, mLastStartActivityRecord,
|
||||
container, inTask);
|
||||
|
||||
if (outActivity != null) {
|
||||
// mLastStartActivityRecord[0] is set in the call to startActivity above.
|
||||
outActivity[0] = mLastStartActivityRecord[0];
|
||||
}
|
||||
return mLastStartActivityResult;
|
||||
}
|
||||
|
||||
/** DO NOT call this method directly. Use {@link #startActivityLocked} instead. */
|
||||
private int startActivity(IApplicationThread caller, Intent intent, Intent ephemeralIntent,
|
||||
String resolvedType, ActivityInfo aInfo, ResolveInfo rInfo,
|
||||
IVoiceInteractionSession voiceSession, IVoiceInteractor voiceInteractor,
|
||||
IBinder resultTo, String resultWho, int requestCode, int callingPid, int callingUid,
|
||||
@@ -604,7 +646,7 @@ class ActivityStarter {
|
||||
null /*callingPackage*/, 0 /*realCallingPid*/, 0 /*realCallingUid*/,
|
||||
0 /*startFlags*/, null /*options*/, false /*ignoreTargetSecurity*/,
|
||||
false /*componentSpecified*/, mLastHomeActivityStartRecord /*outActivity*/,
|
||||
null /*container*/, null /*inTask*/);
|
||||
null /*container*/, null /*inTask*/, "startHomeActivity: " + reason);
|
||||
if (mSupervisor.inResumeTopActivity) {
|
||||
// If we are in resume section already, home activity will be initialized, but not
|
||||
// resumed (to avoid recursive resume) and will stay that way until something pokes it
|
||||
@@ -629,7 +671,7 @@ class ActivityStarter {
|
||||
IBinder resultTo, String resultWho, int requestCode, int startFlags,
|
||||
ProfilerInfo profilerInfo, WaitResult outResult,
|
||||
Configuration globalConfig, Bundle bOptions, boolean ignoreTargetSecurity, int userId,
|
||||
IActivityContainer iContainer, TaskRecord inTask) {
|
||||
IActivityContainer iContainer, TaskRecord inTask, String reason) {
|
||||
// Refuse possible leaked file descriptors
|
||||
if (intent != null && intent.hasFileDescriptors()) {
|
||||
throw new IllegalArgumentException("File descriptors passed in Intent");
|
||||
@@ -784,7 +826,7 @@ class ActivityStarter {
|
||||
resultTo, resultWho, requestCode, callingPid,
|
||||
callingUid, callingPackage, realCallingPid, realCallingUid, startFlags,
|
||||
options, ignoreTargetSecurity, componentSpecified, outRecord, container,
|
||||
inTask);
|
||||
inTask, reason);
|
||||
|
||||
Binder.restoreCallingIdentity(origId);
|
||||
|
||||
@@ -847,7 +889,7 @@ class ActivityStarter {
|
||||
|
||||
final int startActivities(IApplicationThread caller, int callingUid, String callingPackage,
|
||||
Intent[] intents, String[] resolvedTypes, IBinder resultTo,
|
||||
Bundle bOptions, int userId) {
|
||||
Bundle bOptions, int userId, String reason) {
|
||||
if (intents == null) {
|
||||
throw new NullPointerException("intents is null");
|
||||
}
|
||||
@@ -909,7 +951,7 @@ class ActivityStarter {
|
||||
resolvedTypes[i], aInfo, null /*rInfo*/, null, null, resultTo, null, -1,
|
||||
callingPid, callingUid, callingPackage,
|
||||
realCallingPid, realCallingUid, 0,
|
||||
options, false, componentSpecified, outActivity, null, null);
|
||||
options, false, componentSpecified, outActivity, null, null, reason);
|
||||
if (res < 0) {
|
||||
return res;
|
||||
}
|
||||
@@ -2261,4 +2303,40 @@ class ActivityStarter {
|
||||
}
|
||||
return didSomething;
|
||||
}
|
||||
|
||||
void dump(PrintWriter pw, String prefix) {
|
||||
pw.println(prefix + "ActivityStarter:");
|
||||
prefix = prefix + " ";
|
||||
|
||||
pw.println(prefix + "mLastStartReason=" + mLastStartReason);
|
||||
pw.println(prefix + "mLastStartActivityTimeMs="
|
||||
+ DateFormat.getDateTimeInstance().format(new Date(mLastStartActivityTimeMs)));
|
||||
pw.println(prefix + "mLastStartActivityResult=" + mLastStartActivityResult);
|
||||
ActivityRecord r = mLastStartActivityRecord[0];
|
||||
if (r != null) {
|
||||
pw.println(prefix + "mLastStartActivityRecord:");
|
||||
r.dump(pw, prefix + " ");
|
||||
}
|
||||
pw.println(prefix + "mLastHomeActivityStartResult=" + mLastHomeActivityStartResult);
|
||||
r = mLastHomeActivityStartRecord[0];
|
||||
if (r != null) {
|
||||
pw.println(prefix + "mLastHomeActivityStartRecord:");
|
||||
r.dump(pw, prefix + " ");
|
||||
}
|
||||
if (mStartActivity != null) {
|
||||
pw.println(prefix + "mStartActivity:");
|
||||
mStartActivity.dump(pw, prefix + " ");
|
||||
}
|
||||
if (mIntent != null) {
|
||||
pw.println(prefix + "mIntent=" + mIntent);
|
||||
}
|
||||
if (mOptions != null) {
|
||||
pw.println(prefix + "mOptions=" + mOptions);
|
||||
}
|
||||
pw.println(prefix + "mLaunchSingleTop=" + mLaunchSingleTop
|
||||
+ " mLaunchSingleInstance=" + mLaunchSingleInstance
|
||||
+ " mLaunchSingleTask=" + mLaunchSingleTask
|
||||
+ " mLaunchFlags=0x" + Integer.toHexString(mLaunchFlags)
|
||||
+ " mDoResume=" + mDoResume + " mAddingToTask=" + mAddingToTask);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -411,7 +411,7 @@ class AppErrors {
|
||||
task.mCallingPackage, task.intent,
|
||||
null, null, null, 0, 0,
|
||||
ActivityOptions.makeBasic().toBundle(),
|
||||
task.userId, null, null);
|
||||
task.userId, null, null, "AppErrors");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -346,7 +346,7 @@ final class PendingIntentRecord extends IIntentSender.Stub {
|
||||
} else {
|
||||
owner.startActivityInPackage(uid, key.packageName, finalIntent,
|
||||
resolvedType, resultTo, resultWho, requestCode, 0,
|
||||
options, userId, container, null);
|
||||
options, userId, container, null, "PendingIntentRecord");
|
||||
}
|
||||
} catch (RuntimeException e) {
|
||||
Slog.w(TAG, "Unable to send startActivity intent", e);
|
||||
|
||||
Reference in New Issue
Block a user