package com.example.admin.thkiller;
import android.app.ActivityManager;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class MainActivity extends ActionBarActivity {
private Button but_kill;
private ListView myListView;
private ActivityManager activityManager;
private List<ActivityManager.RunningAppProcessInfo> list;
private int start,end,total;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.start = this.getRunningThredas();
/*
for(int i=0;i<this.list.size();i++){
Log.i("Threads:", this.list.get(i).pid + ":" + this.list.get(i).processName+":"+this.list.get(i).describeContents());
}
*/
this.reloadListView();
this.but_kill = (Button) findViewById(R.id.but_kill);
this.but_kill.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for(int j=0;j<MainActivity.this.list.size();j++){ // 循环杀死进程
if(! MainActivity.this.list.get(j).processName.contains("THKiller") && ! MainActivity.this.list.get(j).processName.contains("android")) {
MainActivity.this.activityManager.killBackgroundProcesses(MainActivity.this.list.get(j).processName);
}
}
MainActivity.this.end = MainActivity.this.getRunningThredas();
MainActivity.this.total = MainActivity.this.start - MainActivity.this.end;
ActivityManager.MemoryInfo outInfo = new ActivityManager.MemoryInfo();
MainActivity.this.activityManager.getMemoryInfo(outInfo);
int lastMemory = (int)outInfo.availMem/1021/1024;
MainActivity.this.reloadListView();
Toast.makeText(MainActivity.this,"清除了"+MainActivity.this.total+"个进程,内存剩余"+lastMemory+"M!",Toast.LENGTH_LONG).show();
}
});
}
// 获取正在运行的进程数量
private int getRunningThredas(){
this.activityManager = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);
this.list = activityManager.getRunningAppProcesses();
return this.list.size();
}
// 载入ListView
private void reloadListView(){
String proName = null;
Drawable proIcon = null;
PackageManager packageManager;
this.myListView = (ListView) findViewById(R.id.myListView);
ArrayList<AppInfo> listData = new ArrayList<AppInfo>();
for(int k=0;k<this.list.size();k++){
AppInfo appInfo = new AppInfo();
ApplicationInfo packageInfo = null;
try{
packageManager = getApplicationContext().getPackageManager();
packageInfo = getPackageManager().getApplicationInfo(this.list.get(k).processName,0);
appInfo.proName = packageManager.getApplicationLabel(packageInfo).toString();
appInfo.proIcon = packageManager.getApplicationIcon(packageInfo);
Log.i("test",appInfo.proName);
listData.add(appInfo);
}catch (Exception e){
}
}
MyAdapter myAdapter = new MyAdapter(this,listData);
this.myListView.setAdapter(myAdapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
杀死后台程序
最新推荐文章于 2022-12-12 22:31:30 发布