Java Log.d(标签“刷新”); //ClearRunningProcessList(); //loadrunningprocesss(); // // } // // } public void clearRunningProcesses
Log.d(标签“刷新”); //ClearRunningProcessList(); //loadrunningprocesss(); // // } // // } public void clearRunningProcessesList()的{ adapter.clearTasks(); } /**在首次创建活动时调用*/ @凌驾 创建时的公共void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); 最终ActivityManager ActivityManager=(ActivityManager)getSystemService(Context.ACTIVITY_服务); //适配器=新任务列表适配器(此); LinearLayout ll=新的LinearLayout(本); LinearLayout.LayoutParams lp1=新的LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_内容, LinearLayout.LayoutParams.WRAP_内容); ll.setLayoutParams(lp1); ll.第1(1)条; lv=新列表视图(本); 适配器=新任务列表适配器(此); loadrunningprocesss(); 低压设置适配器(适配器); 按钮btnKill=新按钮(此按钮); btnKill.setText(“杀死任务”); btnKill.setOnClickListener(新视图.OnClickListener(){ 公共void onClick(视图v){ //listItem.setBackgroundColor(颜色:黑色); for(TaskObject to:getTasksToKill()) { activityManager.killbackgroundprocesss(to.getProcessName()); } adapter.clearTasks(); loadrunningprocesss(); 低压设置适配器(适配器); //TODO自动生成的方法存根 } }); ll.addView(btnKill); ll.addView(lv); setContentView(ll); } 私有列表getTasksToKill() { List tol=新的ArrayList();Java Log.d(标签“刷新”); //ClearRunningProcessList(); //loadrunningprocesss(); // // } // // } public void clearRunningProcesses,java,android,Java,Android,Log.d(标签“刷新”); //ClearRunningProcessList(); //loadrunningprocesss(); // // } // // } public void clearRunningProcessesList()的{ adapter.clearTasks(); } /**在首次创建活动时调用*/ @凌驾 创建时的公共void(Bundle savedInstanceState){ super.onCreate(savedInstanceSt
对于(int i=0;我为什么不创建一个多选项列表视图或带有复选框的列表视图?创建列表以杀死它们,然后在循环中杀死它们?我想这个问题与“java ee”无关,而是与“java”和“android”有关。我建议设置正确的标记。否则很难找到和回答。啊,先生,我有一个带有复选框和一个but的列表视图我没有发布它,因为它太长了。哈哈哈。无论如何,这是我的选择之一。我想使用for循环,但就像我说的,我是安卓系统的新手。我不知道从哪里开始,并把它放在我的代码中。你能帮我吗?非常感谢!:))哈哈哈…但是先生,老实说,我想要的是这方面的代码。哈哈…你能帮我吗?告诉你实话,我的代码来自网络,所以我不知道如何做你的推荐。先生,请看!!我不知道我该如何感谢你的帮助,谢尔盖·本纳先生。:)但是非常感谢你,先生。现在我可以继续我的论文了。我能帮你吗问你另一个问题,先生,如果我还有问题吗?因为你知道我没有像我说的那样了解android。对不起,先生。:)我现在会尝试这个代码,先生。嗨,先生,我有一个问题,为什么当我选择并杀死我选择的应用程序时,它不会在列表中删除,同时列表不会在每次我杀死它时更新一个应用程序。因为在我以前的项目中,它可以删除并更新它。我该怎么做,先生?呵呵。是因为你删除了某些部分吗?对吗,先生?再次感谢你的回答,先生。我需要你。我已经更新了代码来更新列表。请标记回答的问题,如果它适合你。先生!你的代码非常棒,它可以工作我不知道我今天的感觉如何,先生。但是我非常高兴,因为我现在可以继续我的论文中的第二和第三题了。如果我有问题,我可以再次请求你的帮助吗?因为我认为我的第二题比第一题难一点。呵呵又是汉克斯先生:))
package plm.thesis.taskkiller;
public class TaskKillerActivity extends ListActivity {
private static final String TAG = "TaskKillerActivity";
TaskListAdapter adapter;
RefreshReceiver receiver;
class RefreshReceiver extends BroadcastReceiver {
private static final String TAG = "RefreshReceiver";
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "refreshing");
clearRunningProcessesList();
loadRunningProcesses();
}
}
public void clearRunningProcessesList() {
adapter.clearTasks();
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
adapter = new TaskListAdapter(this.getApplicationContext());
setListAdapter(adapter);
loadRunningProcesses();
receiver = new RefreshReceiver();
getApplicationContext().registerReceiver(receiver,
new IntentFilter("plm.thesis.taskkiller.REFRESH_RECEIVER"));
}
@Override
protected void onDestroy() {
super.onDestroy();
getApplicationContext().unregisterReceiver(receiver);
}
public void loadRunningProcesses() {
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> appinfolist = activityManager
.getRunningAppProcesses();
Log.d(TAG, "AppInfoList Size: " + appinfolist.size());
for (RunningAppProcessInfo runningAppProcessInfo : appinfolist) {
TaskObject runningtask = new TaskObject();
runningtask.pid = runningAppProcessInfo.pid;
runningtask.processName = runningAppProcessInfo.processName;
adapter.addTask(runningtask);
}
}
class TaskObject {
int pid;
String processName;
}
class TaskListAdapter extends BaseAdapter {
private static final String TAG = "TaskListAdapter";
ArrayList<TaskKillerActivity.TaskObject> list;
Context context;
public TaskListAdapter(Context context) {
Log.d(TAG, "created new task list adapter");
this.context = context;
if (list == null) {
list = new ArrayList<TaskKillerActivity.TaskObject>();
}
}
public void addTask(TaskObject taskObject) {
list.add(taskObject);
}
public void clearTasks() {
list.clear();
Log.d(TAG, "list size:" + list.size());
this.notifyDataSetChanged();
}
public int getCount() {
return list.size();
}
public TaskObject getItem(int position) {
return list.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.taskitem, null);
TextView textPid = (TextView) view.findViewById(R.id.taskPid);
textPid.setText(Integer.toString(getItem(position).pid));
TextView textName = (TextView) view.findViewById(R.id.taskName);
textName.setText(getItem(position).processName);
Button buttonKill = (Button) view.findViewById(R.id.taskKill);
buttonKill.setTag(getItem(position).processName);
CheckBox chckKill = (CheckBox) view.findViewById(R.id.appSelected);
chckKill.setTag(getItem(position).pid);
view.findViewById(R.id.taskKill).setOnClickListener(
new OnClickListener() {
public void onClick(View v) {
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
Log.d(TAG, "killing process: " + v.getTag());
activityManager.killBackgroundProcesses((String) v
.getTag());
context.sendBroadcast(new Intent(
"plm.thesis.taskkiller.REFRESH_RECEIVER"));
}
});
return view;
}
}
}
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
import android.app.Activity;
import android.app.ActivityManager;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.*;
import java.util.ArrayList;
import java.util.List;
public class TaskKillerActivity extends Activity {
private static final String TAG = "TaskKillerActivity";
TaskListAdapter adapter;
ListView lv;
// RefreshReceiver receiver;
//
// class RefreshReceiver extends BroadcastReceiver {
// private static final String TAG = "RefreshReceiver";
//
// @Override
// public void onReceive(Context context, Intent intent) {
// Log.d(TAG, "refreshing");
// clearRunningProcessesList();
// loadRunningProcesses();
//
// }
//
// }
public void clearRunningProcessesList() {
adapter.clearTasks();
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
// adapter = new TaskListAdapter(this);
LinearLayout ll = new LinearLayout(this);
LinearLayout.LayoutParams lp1 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
ll.setLayoutParams(lp1);
ll.setOrientation(1);
lv = new ListView(this);
adapter = new TaskListAdapter(this);
loadRunningProcesses();
lv.setAdapter(adapter);
Button btnKill = new Button(this);
btnKill.setText("kill task");
btnKill.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//listItem.setBackgroundColor(Color.BLACK);
for(TaskObject to :getTasksToKill())
{
activityManager.killBackgroundProcesses(to.getProcessName());
}
adapter.clearTasks();
loadRunningProcesses();
lv.setAdapter(adapter);
// TODO Auto-generated method stub
}
});
ll.addView(btnKill);
ll.addView(lv);
setContentView(ll);
}
private List<TaskObject> getTasksToKill()
{
List<TaskObject> tol = new ArrayList<TaskObject>();
for(int i =0;i<adapter.getCount();i++)
{
//RelativeLayout rl = (RelativeLayout)lv.getChildAt(i);
TaskObject to = adapter.getItem(i);
//CheckBox cb = (CheckBox)rl.getChildAt(0);
if(to.isToKill())
{
tol.add(to);
}
}
return tol;
}
@Override
protected void onDestroy() {
super.onDestroy();
// getApplicationContext().unregisterReceiver(receiver);
}
public void loadRunningProcesses() {
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> appinfolist = activityManager
.getRunningAppProcesses();
Log.d(TAG, "AppInfoList Size: " + appinfolist.size());
for (ActivityManager.RunningAppProcessInfo runningAppProcessInfo : appinfolist) {
TaskObject runningtask = new TaskObject();
runningtask.setPid(runningAppProcessInfo.pid);
runningtask.setProcessName(runningAppProcessInfo.processName);
adapter.addTask(runningtask);
}
}
class TaskObject {
private int pid;
private String processName;
private boolean toKill;
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public String getProcessName() {
return processName;
}
public void setProcessName(String processName) {
this.processName = processName;
}
public boolean isToKill() {
return toKill;
}
public void setToKill(boolean toKill) {
this.toKill = toKill;
}
}
class TaskListAdapter extends BaseAdapter {
private static final String TAG = "TaskListAdapter";
ArrayList<TaskObject> list;
Context context;
public TaskListAdapter(Context context) {
Log.d(TAG, "created new task list adapter");
this.context = context;
if (list == null) {
list = new ArrayList<TaskKillerActivity.TaskObject>();
}
}
public void addTask(TaskObject taskObject) {
list.add(taskObject);
}
public void clearTasks() {
list.clear();
Log.d(TAG, "list size:" + list.size());
this.notifyDataSetChanged();
}
public int getCount() {
return list.size();
}
public TaskObject getItem(int position) {
return list.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
// LayoutInflater inflater = LayoutInflater.from(context);
// View view = inflater.inflate(R.layout.taskitem, null);
RelativeLayout rl = new RelativeLayout(context);
TextView textPid = new TextView(context);
textPid.setId(222222);
textPid.setText(Integer.toString(getItem(position).getPid()));
TextView textName = new TextView(context);
textName.setId(333333);
textName.setText(getItem(position).getProcessName());
CheckBox chckKill = new CheckBox(context);
chckKill.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//is chkIos checked?
if (((CheckBox) v).isChecked()) {
getItem(position).setToKill(true);
}
}
});
chckKill.setTag(getItem(position).getPid());
chckKill.setId(11111111);
RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
rl.addView(chckKill,lp2);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.RIGHT_OF, chckKill.getId());
lp.setMargins(25,0,0,0);
rl.addView(textName,lp);
RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
lp1.addRule(RelativeLayout.RIGHT_OF, chckKill.getId());
lp1.setMargins(25,20,0,0);
rl.addView(textPid,lp1);
return rl;
}
}
}