//進程管理
public class TaskManagerActivity extends Activity {
@ViewInject(R.id.tv_task_process_count)
private TextView tv_task_process_count;
@ViewInject(R.id.tv_task_memory)
private TextView tv_task_memory;
@ViewInject(R.id.list_view)
private ListView list_view;
private long totalMem;
private List<TaskInfo> taskInfos;
private List<TaskInfo> userTaskInfos;
private List<TaskInfo> systemAppInfos;
private TaskManagerAdapter adapter;
private int processCount;
private long availMem;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
initUI();
initData();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
if(adapter != null){
adapter.notifyDataSetChanged();
}
}
private class TaskManagerAdapter extends BaseAdapter {
@Override
public int getCount() {
//判断当前用户是否需要显示系统进程,需要就显示,不需要就不显示
boolean result = SharedPreferencesUtils.getBoolean(TaskManagerActivity.this, "is_show_system", false); if(result){
return userTaskInfos.size() + 1 + systemAppInfos.size() + 1;
}else{
return userTaskInfos.size() + 1;
}
}
@Override
public Object getItem(int position) {
if (position == 0) {
return null;
} else if (position == userTaskInfos.size() + 1) {
return null;
}
TaskInfo taskInfo;
if (position < (userTaskInfos.size() + 1)) {
//
taskInfo = userTaskInfos.get(position - 1);
} else {
//
int location = position - 1 - userTaskInfos.size() - 1;
taskInfo = systemAppInfos.get(location);
}
return taskInfo;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (position == 0) {
//
TextView tv = new TextView(getApplicationContext());
tv.setBackgroundColor(Color.GRAY);
tv.setTextColor(Color.WHITE);
tv.setText("用户进程:" + userTaskInfos.size() + "个");
return tv;
} else if (position == (userTaskInfos.size() + 1)) {
TextView tv = new TextView(getApplicationContext());
tv.setBackgroundColor(Color.GRAY);
tv.setTextColor(Color.WHITE);
tv.setText("系统进程" + systemAppInfos.size() + "个");
return tv;
}
ViewHolder holder;
View view;
if (convertView != null && convertView instanceof LinearLayout) {
view = convertView;
holder = (ViewHolder) view.getTag();
} else {
view = View.inflate(TaskManagerActivity.this,
R.layout.item_task_manager, null);
holder = new ViewHolder();
holder.iv_app_icon = (ImageView) view
.findViewById(R.id.iv_app_icon);
holder.tv_app_name = (TextView) view
.findViewById(R.id.tv_app_name);
holder.tv_app_memory_size = (TextView) view
.findViewById(R.id.tv_app_memory_size);
holder.tv_app_status = (CheckBox) view
.findViewById(R.id.tv_app_status);
view.setTag(holder);
}
TaskInfo taskInfo;
if (position < (userTaskInfos.size() + 1)) {
//
taskInfo = userTaskInfos.get(position - 1);
} else {
//
int location = position - 1 - userTaskInfos.size() - 1;
taskInfo = systemAppInfos.get(location);
}
holder.iv_app_icon.setImageDrawable(taskInfo.getIcon());
holder.tv_app_name.setText(taskInfo.getAppName());
holder.tv