RecentApp

systemUI/src/com/android/systemui/recents/RecentsActivity.java


RecentsView.java就是显示的控件

/**Dismisses the focused task. */

publicvoiddismissFocusedTask(){

//Get the first stack view

intchildCount = getChildCount();

for(inti = 0; i < childCount; i++) {

Viewchild = getChildAt(i);

if(child != mSearchBar){

TaskStackViewstackView = (TaskStackView) child;

stackView.dismissFocusedTask();

break;

}

}

}

自己写的,结束所有任务。直接用TaskStack做,不要用它自带的dismissFocusedTask来做,会超时,如果在线程里做又不能操作UI。

这里循环要注意,不要用正常的循环,否则会数组越界。因为做了removeTask后,数组内容会减少,所有每次只删除头上的task

publicvoiddismissAllTask() {

Log.i("t","begin");

intnumStacks=mStacks.size();

Log.i("t","TaskStacksize "+numStacks);

for(inti = 0; i < numStacks; i++) {

TaskStacktaskStack=mStacks.get(i);

intnumStack=taskStack.getTaskCount();

Log.i("t","Tasksize "+numStack);

while(numStack>0){

Log.i("t","while===========");

//Ifdo removeTask(), the TaskStack will remove the task right

//now,so we must remove first task every time.

Taskt=taskStack.getTasks().get(0);

taskStack.removeTask(t);

numStack=taskStack.getTaskCount();

Log.i("t","Tasksize "+numStack);

Log.i("t","==============");

}



TaskStackView.java

/**Dismisses the focused task. */

publicvoiddismissFocusedTask(){

//Return early if there is no focused task index

if(mFocusedTaskIndex< 0) return;


Taskt = mStack.getTasks().get(mFocusedTaskIndex);

TaskViewtv = getChildViewForTask(t);

tv.dismissTask();

}


更多相关文章

  1. Android 子线程测试
  2. Android Handler:子线程发消息到UI主线程
  3. Android新线程中更新主线程UI中的View方法汇总

随机推荐

  1. Android(安卓)NDK: jni/Android.mk: Cann
  2. 天气预报(二)
  3. android 更新失败
  4. Android(安卓)高仿知乎日报 (上)
  5. Android(安卓)Intent的几个主要用法
  6. 安卓SDK安装时出现的小问题
  7. Android.网络拨号脚本
  8. android 动态增加不同名称的按钮
  9. Android(安卓)Touch事件
  10. 在Android(安卓)Studio中导入jar包