/*
* [程序名称] Android 任务管理器
* [作者] xmobileapp团队
* [参考资料] http://code.google.com/p/freetaskmanager/
* [开源协议] GNU General Public License v2 (http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
package com.xmobileapp.taskmanager;
import android.app.ActivityManager;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.IPackageInstallObserver;
import android.content.pm.PackageStats;
import android.content.pm.PackageManager.NameNotFoundException;
public class DetailProcess implements Comparable {
private ProcessInfo.PsRow psrow = null;
private ApplicationInfo appinfo = null;
private PackageInfo pkginfo = null;
private ActivityManager.RunningAppProcessInfo runinfo = null;
// private ActivityManager.RunningTaskInfo taskinfo = null;
private String title = null;
private PackageManager pm;
private Intent intent = null;
public DetailProcess(Context ctx, ActivityManager.RunningAppProcessInfo runinfo) {
this.runinfo = runinfo;
pm = ctx.getApplicationContext().getPackageManager();
}
public ProcessInfo.PsRow getPsrow() {
return psrow;
}
public void setPsrow(ProcessInfo.PsRow psrow) {
this.psrow = psrow;
}
public ApplicationInfo getAppinfo() {
return appinfo;
}
public void setAppinfo(ApplicationInfo appinfo) {
this.appinfo = appinfo;
}
public PackageInfo getPkginfo() {
return pkginfo;
}
public void setPkginfo(PackageInfo pkginfo) {
this.pkginfo = pkginfo;
}
public ActivityManager.RunningAppProcessInfo getRuninfo() {
return runinfo;
}
public void setRuninfo(ActivityManager.RunningAppProcessInfo runinfo) {
this.runinfo = runinfo;
}
public void fetchApplicationInfo(PackagesInfo pkg) {
if (appinfo == null) appinfo = pkg.getInfo(runinfo.processName);
}
public void fetchPackageInfo() {
if (pkginfo == null && appinfo != null) pkginfo = MiscUtil.getPackageInfo(pm, appinfo.packageName);
}
public void fetchPsRow(ProcessInfo pi) {
if (psrow == null) psrow = pi.getPsRow(runinfo.processName);
}
public boolean isGoodProcess() {
return runinfo != null && appinfo != null && pkginfo != null && pkginfo.activities != null
&& (pkginfo.activities.length > 0);
}
public String getPackageName() {
return appinfo.packageName;
}
public String getBaseActivity() {
return pkginfo.activities[0].name;
}
public Intent getIntent() {
if (intent != null) return intent;
intent = null;
try {
intent = pm.getLaunchIntentForPackage(pkginfo.packageName);
if (intent != null) {
intent = intent.cloneFilter();
intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
return intent;
}
if (pkginfo.activities.length == 1) {
intent = new Intent(Intent.ACTION_MAIN);
intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
intent.setClassName(pkginfo.packageName, pkginfo.activities[0].name);
return intent;
}
intent = IntentList.getIntent(pkginfo.packageName, pm);
if (intent != null) {
intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
return intent;
}
} catch (NameNotFoundException e) {
return null;
}
return null;
}
public String getTitle() {
if (title == null) title = appinfo.loadLabel(pm).toString();
return title;
}
static class PkgSizeObserver extends IPackageInstallObserver.Stub {
public int idx;
public void packageInstalled(String packageName, int returnCode){
}
public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) {
// pStats.cacheSize;
}
}
@Override
public int compareTo(Object another) {
if (another instanceof DetailProcess && another != null) {
return this.getTitle().compareTo(((DetailProcess) another).getTitle());
}
return -1;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
Android任务管理器源码.zip (49个子文件)
Android任务管理器源码
taskmanager
.classpath 280B
assets
src
com
xmobileapp
taskmanager
tools
StrUtil.java 3KB
RunScript.java 4KB
TaskManager.java 5KB
PackagesInfo.java 2KB
TaskListAdapters.java 4KB
ProcessInfo.java 3KB
IntentList.java 2KB
MiscUtil.java 4KB
DetailProcess.java 5KB
res
values
arrays.xml 309B
strings.xml 548B
layout
list_main.xml 1KB
main.xml 692B
drawable
icon.png 3KB
bin
resources.ap_ 8KB
classes.dex 24KB
com.xmobileapp.taskmanager.apk 21KB
com
xmobileapp
taskmanager
tools
RunScript$1.class 2KB
RunScript.class 3KB
StrUtil.class 3KB
RunScript$2.class 2KB
TaskListAdapters$ViewHolder.class 672B
TaskManager$LoadFinishReceiver.class 1KB
TaskListAdapters.class 528B
TaskListAdapters$ProcessListAdapter$1.class 2KB
R$string.class 707B
MiscUtil$1.class 3KB
TaskManager.class 5KB
R$layout.class 451B
ProcessInfo$PsRow.class 2KB
IntentList.class 2KB
PackagesInfo.class 1KB
R$id.class 549B
DetailProcess.class 5KB
R$array.class 430B
R$attr.class 364B
DetailProcess$PkgSizeObserver.class 926B
MiscUtil.class 2KB
R$drawable.class 424B
ProcessInfo.class 2KB
TaskManager$1.class 1KB
TaskListAdapters$ProcessListAdapter.class 5KB
R.class 643B
default.properties 364B
.project 862B
AndroidManifest.xml 754B
gen
com
xmobileapp
taskmanager
R.java 2KB
taskmanager.rar 81KB
共 49 条
- 1
资源评论
心梓知识
- 粉丝: 6381
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功