问题

我正在开发一个需要在系统中运行的应用程序的信息的应用程序.有没有一个API /方法来检索这种信息?

  最佳答案

您无法在Android中检测App启动,但您可以获取当前打开的应用程序列表,并检查您正在寻找的应用程序是否打开或不使用以下代码:

 ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> runningAppProcessInfo = am.getRunningAppProcesses();

for (int i = 0; i < runningAppProcessInfo.size(); i++) {
  if(runningAppProcessInfo.get(i).processName.equals("com.the.app.you.are.looking.for")) {
    // Do your stuff here.
  }
}
 

您还可以使用此方法检查应用程序是否在前台运行

 public static boolean isForeground(Context ctx, String myPackage){
    ActivityManager manager = (ActivityManager) ctx.getSystemService(ACTIVITY_SERVICE);
    List< ActivityManager.RunningTaskInfo > runningTaskInfo = manager.getRunningTasks(1); 

    ComponentName componentInfo = runningTaskInfo.get(0).topActivity;
    if(componentInfo.getPackageName().equals(myPackage)) {
        return true;
    }       
    return false;
}
 

  相同标签的其他问题

android