有人可以帮我提供示例代码以检索当前在 Android 中运行的 Activity 的包名称吗?
编辑:
代码 1
ActivityManager am = (ActivityManager) getSystemService(Activity.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> processes = am.getRunningAppProcesses();
if (processes != null){
for (int i=0; i<processes.size(); i++){
RunningAppProcessInfo temp = processes.get(i);
String pName = temp.processName;
for (int k=0; k<blacklist.size(); k++){
if (pName.equalsIgnoreCase((String)blacklist.get(k))){
int pid = android.os.Process.getUidForName(pName);
android.os.Process.killProcess(pid);
}
}
}
代码 2?
int pid = temp.pid;
String[] packages = temp.pkgList;
for (int j=0; j<packages.length; j++){
String packageName = packages[j];
for (int k=0; k<blacklist.size(); k++){
if (packageName.equalsIgnoreCase((String)blacklist.get(k))){
//Android 2.2+ kill all background processes
am.killBackgroundProcesses(packageName);
}
}
}
假设黑色有我已经列入黑名单并想要终止的程序的应用程序包名称。上面哪段代码是实现我的任务 killer 的正确方法。有人可以解释 killBackgroundProcesses(packageName) 和 android.os.Process.killProcess(pid) 之间的区别,因为我似乎无法理解它们之间的区别。
最佳答案
您可以使用 Android ActivityManager 上的 getRunningAppProcesses 来检索正在运行的进程列表。
检查此链接:http://developer.android.com/reference/android/app/ActivityManager.html#getRunningAppProcesses%28%29
您可以使用 Android PackageManager 上的 getInstalledPackages 方法来检索所有已安装应用的列表
关于android - 检索当前在 Android 中运行的应用程序的包名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6662163/