首发地址:http://www.eoeandroid.com/thread-201709-1-1.html

看到几个不错的源码:

植物大战僵尸,又见植物大战僵尸!(分享)
http://www.eoeandroid.com/thread-211063-1-1.html

Android 3D 乡村赛车 完整代码
http://www.eoeandroid.com/thread-211471-1-1.html

发现自己之前练习写过一个Demo,RUN了下感觉还是挺实用的,所以就发上来给大家看看。

权限(这个不要忘记哦!)

   <uses-permission android:name="android.permission.GET_TASKS"/> <uses-permission android:name="android.permission.RESTART_PACKAGES"/>

主界面

package irdc.ex10_10; import java.util.ArrayList;
import java.util.List; import android.app.Activity;
import android.app.ActivityManager;
import android.app.ActivityManager.RunningServiceInfo;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button; public class EX10_10 extends Activity
{
private Button Button01;
private Button Button02;
private ActivityManager mActivityManager;
private ArrayList<String> arylistTask;
private ArrayList<String> arylistTaskPackageName;
private ArrayList<String> arylistService;
private ArrayList<String> arylistServicePackageName;
private int intGetTaskCounter = 30;
public List<ActivityManager.RunningTaskInfo> mRunningTasks;
public List<RunningServiceInfo> mRunningTaskServices; /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main); Button01 = (Button) findViewById(R.id.Button01);
Button02 = (Button) findViewById(R.id.Button02);
/* 取得ActivityManager */
mActivityManager = (ActivityManager) EX10_10.this
.getSystemService(ACTIVITY_SERVICE); Button01.setOnClickListener(new Button.OnClickListener()
{ @Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
arylistTask = new ArrayList<String>();
arylistTaskPackageName = new ArrayList<String>();
/* 用ActivityManager取得正在运行的硬用程序 */
mRunningTasks = mActivityManager.getRunningTasks(intGetTaskCounter); int i = 1;
/* 以循环及baseActivity方式取得名称与ID并放入ArrayList */
for (ActivityManager.RunningTaskInfo amTask : mRunningTasks)
{
arylistTask.add("" + (i++) + ": "
+ amTask.baseActivity.getClassName() + "(ID=" + amTask.id + ")");
arylistTaskPackageName.add(amTask.baseActivity.getPackageName());
}
/* 将ArrayList放到Bundle并将Activity开启 */
Intent intent = new Intent();
intent.setClass(EX10_10.this, EX10_10_1.class); Bundle bundle = new Bundle();
bundle.putStringArrayList("arylistTask", arylistTask);
bundle.putStringArrayList("arylistTaskPackageName",
arylistTaskPackageName); intent.putExtras(bundle);
startActivity(intent);
}
});
Button02.setOnClickListener(new Button.OnClickListener()
{ @Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
arylistService = new ArrayList<String>();
arylistServicePackageName = new ArrayList<String>();
mRunningTaskServices = mActivityManager
.getRunningServices(intGetTaskCounter); int i = 1;
/* 北循环及RunningServiceInfo对象取得服务名称与ID并放入ArrayList */
for (RunningServiceInfo amTask : mRunningTaskServices)
{
arylistService.add("" + (i++) + ": " + amTask.process + "(ID="
+ amTask.pid + ")");
arylistServicePackageName.add(amTask.service.getPackageName());
}
/* 将ArrayList放到Bundle并将Activity开启 */
Intent intent = new Intent();
intent.setClass(EX10_10.this, EX10_10_2.class); Bundle bundle = new Bundle();
bundle.putStringArrayList("arylistService", arylistService);
bundle.putStringArrayList("arylistServicePackageName",
arylistServicePackageName); intent.putExtras(bundle);
startActivity(intent);
}
});
}
}

正在运行的程序管理

package irdc.ex10_10; import java.util.ArrayList; import android.app.Activity;
import android.app.ActivityManager;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView; public class EX10_10_1 extends Activity
{
private ListView ListView01;
private ArrayList<String> arylistTask;
private ArrayList<String> arylistTaskPackageName;
private ArrayAdapter<String> aryAdapter1;
private ActivityManager mActivityManager;
int click_id; /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main_1); /* 取得EX10_10所放的ArrayList */
Bundle bunde = this.getIntent().getExtras();
arylistTask = bunde.getStringArrayList("arylistTask");
arylistTaskPackageName = bunde.getStringArrayList("arylistTaskPackageName"); ListView01 = (ListView) findViewById(R.id.ListView01);
/* 将ArrayList放到Adapter */
aryAdapter1 = new ArrayAdapter<String>(EX10_10_1.this,
R.layout.simple_list_item_1, arylistTask);
ListView01.setAdapter(aryAdapter1); ListView01.setOnItemClickListener(new ListView.OnItemClickListener()
{ @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int id, long arg3)
{
// TODO Auto-generated method stub
/* 取得ActivityManager */
mActivityManager = (ActivityManager) EX10_10_1.this
.getSystemService(ACTIVITY_SERVICE);
/* 所点选的index */
click_id = id; AlertDialog.Builder builder = new AlertDialog.Builder(EX10_10_1.this);
builder.setCancelable(false);
builder.setTitle("Message");
builder.setMessage("确定要删除吗??");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener()
{ @Override
public void onClick(DialogInterface dialog, int which)
{
// TODO Auto-generated method stub
/* 停止所点击的应用程序 */
mActivityManager.restartPackage(arylistTaskPackageName
.get(click_id).toString());
/* 移除ArrayList里的值并更新ListView */
arylistTask.remove(click_id);
ListView01.invalidateViews(); }
});
builder.setNegativeButton("NO", new DialogInterface.OnClickListener()
{ @Override
public void onClick(DialogInterface dialog, int which)
{
// TODO Auto-generated method stub 

}
});
builder.show(); }
}); }
}

正在运行的服务管理

package irdc.ex10_10; import java.util.ArrayList; import android.app.Activity;
import android.app.ActivityManager;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView; public class EX10_10_2 extends Activity
{
private ListView ListView02;
private ArrayList<String> arylistService;
private ArrayList<String> arylistServicePackageName;
private ArrayAdapter<String> aryAdapter1;
private ActivityManager mActivityManager;
int click_id; /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main_2); /* 取得EX10_10所放的ArrayList */
Bundle bunde = this.getIntent().getExtras();
arylistService = bunde.getStringArrayList("arylistService");
arylistServicePackageName = bunde
.getStringArrayList("arylistServicePackageName"); ListView02 = (ListView) findViewById(R.id.ListView02);
/* 将ArrayList放到Adapter */
aryAdapter1 = new ArrayAdapter<String>(EX10_10_2.this,
R.layout.simple_list_item_1, arylistService);
ListView02.setAdapter(aryAdapter1); ListView02.setOnItemClickListener(new ListView.OnItemClickListener()
{ @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int id, long arg3)
{
// TODO Auto-generated method stub
/* 取得ActivityManager */
mActivityManager = (ActivityManager) EX10_10_2.this
.getSystemService(ACTIVITY_SERVICE);
/* 所点击的index */
click_id = id; AlertDialog.Builder builder = new AlertDialog.Builder(EX10_10_2.this);
builder.setCancelable(false);
builder.setTitle("Message");
builder.setMessage("确定要删除吗??");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener()
{ @Override
public void onClick(DialogInterface dialog, int which)
{
// TODO Auto-generated method stub
/* 停止所点击的服务 */
mActivityManager.restartPackage(arylistServicePackageName.get(
click_id).toString());
/* 移除ArrayList里的值并更新ListView */
arylistService.remove(click_id);
ListView02.invalidateViews(); }
});
builder.setNegativeButton("NO", new DialogInterface.OnClickListener()
{ @Override
public void onClick(DialogInterface dialog, int which)
{
// TODO Auto-generated method stub 

}
});
builder.show(); }
});
}
}

实在不明白的可以下载源码看:

EX_Android.zip

转载于:https://www.cnblogs.com/nuliniaoboke/archive/2012/10/30/2746061.html

如何去管理正在运行的程序和服务相关推荐

  1. ssh中exit命令退出远程服务器_解决Linux关闭终端(关闭SSH等)后运行的程序或者服务自动停止...

    问题描述:当SSH远程连接到服务器上,然后运行一个服务 ./catalina.sh start,然后把终端开闭(切断SSH连接)之后,发现该服务中断,导致网页无法访问. 解决方法:使用nohup命令让 ...

  2. WINDOWS登录系统之前(欢迎界面)运行指定程序脚本服务

    为什么80%的码农都做不了架构师?>>>    方法一:创建可在系统登录之前运行的服务 PS:需要用到两个程序-Srvany和Instsrv,点击 http://pan.baidu. ...

  3. 如何在windows中使用cmd命令去编译,运行C++程序

    2019独角兽企业重金招聘Python工程师标准>>> 1.修改环境变量 我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧! ...

  4. python程序发布 ubuntu_在ubuntu16.04的虚拟环境中运行Python程序作为服务

    我正在尝试让一个Flask+SocketIO应用程序作为一个服务在ubuntu16.04上运行,在一个虚拟环境中.我的服务器每天凌晨3点重新启动(超出我的控制范围),所以我需要它在启动时自动启动.在 ...

  5. C++中运行一个程序的内存分配情况及qt中的内存管理机制

    一个由c/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)- 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈. 2.堆区(heap) - 一 ...

  6. Nginx运行FastCGI程序(ngx_http_fastcgi_module模块、fcgi库、spwan-fcgi进程管理器)

    一.什么是CGI 通用网关接口(Common Gateway Interface.CGI)描述了客户端和服务器程序之间传输数据的一种标准,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数 ...

  7. nvm管理node版本 node/npm不是内部或外部命令,也不是可运行的程序

    最近,有新老项目一起开发,node版本太高,老项目起不来:node版本太低,新项目还搭不起来-所以,一个nvm就显得很有必要了.这几个坑掉的,摔的我差点起不来- 废话少说就是: 用管理员身份运行.ex ...

  8. python释放变量内存_python解释器安装,运行python程序的方式及程序运行的步骤,变量与自动的内存管理...

    一.python解释器安装 ps: 注意设置环境变量(文件是操作系统的概念,操作系统优先在当前文件夹找,找不到就到环境变量path找) python解释器不兼容 解释器下载官网:http://pyth ...

  9. Windows 搭建 .NET 跨平台环境并运行应用程序

    写在前面 阅读目录: Install .NET Version Manager (DNVM) Install .NET Core Execution Environment (DNX) Write t ...

最新文章

  1. 传孙正义领投滴滴无人车3亿美元新融资,此前软银宣布出售阿里股份等资产
  2. 博图读取温度的指令_1200读取温度巡检仪 16路
  3. DotNet Framework源代码调试问题
  4. CodeForces - 1301C Ayoub's function(数学)
  5. Asp.Net Core Mvc Razor之RazorPage
  6. [html] 写一个标签云的布局
  7. 这个漏洞能换几杯星巴克?在线等,挺急的
  8. 如何表示数组所有数都不等于一个数_力扣刷题那些事儿(3)-缺失的第一个正整数(41)...
  9. el-table 懒加载不触发合计_Angular-懒加载第三方
  10. iOS 常用到的宏#define
  11. Spine 2D骨骼动画 教程整理 归档于此
  12. 操作注册表修改防火墙
  13. 五款好用到爆炸的小众软件,用过的都好说!建议收藏转发
  14. word插入对勾对号
  15. CIO40知识星球—5年工程师升职IT主管(22-27岁)
  16. 传奇世界开服教程:传奇世界开服需要准备什么?前期需要投入多少?
  17. RTE2020首批嘉宾公布 技术+行业专家携手顶级投资人参会
  18. 【微信小程序】WXML WXSS JS
  19. 数据库的故障及其恢复策略
  20. 毕业设计管理系统 数据库设计

热门文章

  1. TCP/IP卷一:49---ICMP之(与ICMP相关的攻击)
  2. powerdesigner画UML组件图初步
  3. AD19原理图页面大小等参数修改
  4. matlab中动态绘制曲线
  5. foxmail邮件--收件箱分类
  6. 优酷自动上传软件,百度霸屏轻松到
  7. 第二届先导杯-在曙光超算平台编译cp2k
  8. 多策略融合改进的均衡优化算法
  9. pcap如何转换为pcd_极光扫描操作系统漏洞.doc
  10. 2188万:2022年度5G+多网融合应急调度平台项目