我想使用ActivityManager.moveTaskToFront(int taskId,int flags)的方法,但不成功 并收到警告, 任务从10040停止的前台请求 ,源代码如下:
List<TaskDescription> taskDescriptionsList = new ArrayList<TaskDescription>();
taskDescriptionsList = getRecentTasks();
TaskDescription taskDescription = taskDescriptionsList.get(0);
if (taskDescription.taskId >= 0) {
final ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
am.moveTaskToFront(taskDescription.taskId,ActivityManager.MOVE_TASK_WITH_HOME);
}else {
Intent intent = taskDescription.intent;
intent.addFlags (Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTOR
|Intent.FLAG_ACTIVITY_TASK_ON_HOME
| Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
TaskDescription:
public final class TaskDescription {
final ResolveInfo resolveInfo;
final int taskId; // application task id for curating apps
final int persistentTaskId; // persistent id
final Intent intent; // launch intent for application
final String packageName; // used to override animations (see onClick())
final CharSequence description;
private Bitmap mThumbnail; // generated by Activity.onCreateThumbnail()
private Drawable mIcon; // application package icon
private CharSequence mLabel; // application package label
public TaskDescription(int _taskId, int _persistentTaskId,
ResolveInfo _resolveInfo, Intent _intent,
String _packageName, CharSequence _description) {
resolveInfo = _resolveInfo;
intent = _intent;
taskId = _taskId;
persistentTaskId = _persistentTaskId;
description = _description;
packageName = _packageName;
}
// mark all these as locked?
public CharSequence getLabel() {
return mLabel;
}
public void setLabel(CharSequence label) {
mLabel = label;
}
public Drawable getIcon() {
return mIcon;
}
public void setIcon(Drawable icon) {
mIcon = icon;
}
public void setThumbnail(Bitmap thumbnail) {
mThumbnail = thumbnail;
}
public Bitmap getThumbnail() {
return mThumbnail;
}
}
如何解决这个问题?