因为在framework中想添加这个功能,所以写了个appliction来实现一下获取正在运行的应用程序: 还是先看图吧: 这个app主要是简单的实现了获取非系统的应用程序和一些常用的系统应用程序,显示在一个listview中,并添加了点击(回复到你打开的界面)和长按事件(关闭应用程序)。 看看代码吧: 直接贴出来再加上注释吧(直接写在一个文件里): 代码如下: package andorid.tasks; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.L 在Android平台上,获取正在运行的应用程序是一个常见的需求,这通常涉及到对系统进程的监控和管理。在提供的描述和代码片段中,我们看到一个名为`ManagerTasksActivity`的自定义`Activity`类,它用于展示当前运行的应用程序列表。以下是这个功能的详细实现步骤和关键知识点: 1. **获取包管理器(PackageManager)**: 在`onCreate`方法中,通过`this.getPackageManager()`获取`PackageManager`对象,它是Android系统服务,用于获取关于安装在设备上的应用包的信息。 2. **设置视图**: 使用`setContentView(R.layout.task_main)`加载布局文件,其中包含一个`ListView`,用于展示运行中的应用列表。 3. **初始化ListView**: `listView=(ListView)findViewById(R.id.list_view)`获取到布局文件中的`ListView`,然后调用`LoadList(this)`来填充数据。 4. **获取运行的应用程序**: - 使用`ActivityManager`服务,通过`getSystemService(Context.ACTIVITY_SERVICE)`获取`ActivityManager`对象。 - 调用`ActivityManager`的`getRunningAppProcesses()`方法,返回一个`RunningAppProcessInfo`对象的列表,这些对象包含了正在运行的应用程序信息。 5. **处理运行的应用程序列表**: 遍历`RunningAppProcessInfo`列表,对每个应用执行以下操作: - 创建`PackageInfo`对象,通常通过`PackageManager`的`getPackageInfo()`方法获取,但在这个例子中,它被简单地声明为一个新的对象,这在实际应用中可能不正确。 - 对于非系统应用和常用应用进行处理,可能需要判断`RunningAppProcessInfo`的`importance`值或`processName`是否以`.system`开头。 6. **创建数据列表**: - 使用`ArrayList<HashMap<String, Object>>`作为数据结构存储应用信息,包括包名、图标、应用名称等。 - 可能会使用`SimpleAdapter`将数据绑定到`ListView`,并自定义`ViewBinder`来设置图标和文本。 7. **事件监听**: - 添加`OnItemClickListener`处理点击事件,点击列表项时可能会启动相应应用或执行其他操作。 - 添加`OnItemLongClickListener`处理长按事件,可能弹出对话框让用户选择关闭应用。 8. **显示数据**: - 将处理好的应用信息列表传递给`SimpleAdapter`,并设置到`ListView`,完成列表的展示。 9. **关闭应用程序**: 关闭应用程序通常涉及到发送一个带有特定动作的`Intent`,例如`ACTION_TASK_REMOVE`,但在这个例子中,代码没有明确表示如何处理长按事件以关闭应用。 注意,这个简单的示例可能不完整,实际应用中还需要处理权限问题,如`GET_TASKS`权限,以及对系统进程的适当处理。此外,获取应用的详细信息(如名称和图标)通常需要调用`PackageManager`的`getApplicationInfo()`方法。这个例子中的`PackageInfo`对象创建方式并不正确,应根据实际的包名获取正确的`PackageInfo`信息。






















- 粉丝: 8
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 高阶逻辑定理证明:第15届国际会议论文集
- (源码)基于CC++编程语言的简易操作系统.zip
- (源码)基于意图识别的假肢控制系统.zip
- (源码)基于ARM CortexM处理器的迷宫游戏开发.zip
- (源码)基于编程语言的Smart Utility Vehicle.zip
- 基于 MAX78000 与 SSD 目标检测网络的猫咪识别喂食器:借助单片机 CNN 加速器实现神经网络计算
- (源码)基于Python和DGL的图计算实验框架MyPaGraph.zip
- 从零开始设计并训练神经网络,助你透彻理解它
- (源码)基于Python的JSON数据图形化展示系统.zip
- (源码)基于Arduino的传感器读取系统.zip
- 电气工程手册:计算机与数字设备精华
- (源码)基于Arduino框架的IoT环境监控系统.zip
- (源码)基于Python的模拟村庄发展项目-村庄模拟器.zip
- (源码)基于Keil C51编程语言的MCS52单片机打地鼠游戏.zip
- 基于基于常用 CNN 神经网络实现超 30 万条手写数学符号识别
- (源码)基于C++的太阳能飞机控制系统.zip



评论0