如何在Android中将任何应用程序从后台移动到前台时发送通知,反之亦然

时间:2012-08-21 18:11:50

标签: android

有什么方法可以知道什么时候应用程序从后台到前台和副词?我需要某种机制让我自己的应用程序知道设备中安装的任何应用程序都是从后台到前台(主屏幕)或从后台到前台。

2 个答案:

答案 0 :(得分:0)

出于安全考虑,我不认为这在Android中是可行的。如果要查看何时启动应用程序,则必须创建自定义启动器。

即便如此,我一直希望这样做,并且最接近我可以获得类似功能的是监视正在运行的应用程序:

ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List<RunningAppProcessInfo> runningTasks = activityManager.getRunningAppProcesses();

所以,如果

runningTasks.get(0).importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND

然后该任务在前台(如果不是那么它在后台)。

答案 1 :(得分:0)

为了检查我的应用是否在前台,我使用的是这段代码:

  public static boolean isAppInForeground(Context context) {
  List<RunningAppProcessInfo> appProcesses = ((ActivityManager) context
    .getSystemService(Context.ACTIVITY_SERVICE)).getRunningAppProcesses();
  if (appProcesses == null) {
  return false;
  }
  final String packageName = context.getPackageName();
  for (RunningAppProcessInfo appProcess : appProcesses) {
    if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND
        && appProcess.processName.equals(packageName)) {
      return true;
    }
  }
  return false;
}