反复检查应用程序是在前台还是后台

时间:2013-11-21 05:16:17

标签: android android-activity

我想检测应用程序每次从后台到前台的时间。 我正在使用以下代码来确定状态

   topActivity.getPackageName().equals(context.getPackageName())

但是我需要重复执行代码,以便每当我的应用程序进入前台时都能检测到

2 个答案:

答案 0 :(得分:1)

这是你的应用程序。活动始终知道它是否可见。所以,让你的每一个活动告诉某人它的状态。您无需轮询应用程序状态。 Check this answer.

答案 1 :(得分:0)

试试这个:

    public static String isApplicationSentToBackground(final Context context) {
    ActivityManager am = (ActivityManager) context
            .getSystemService(Context.ACTIVITY_SERVICE);
    List<RunningTaskInfo> tasks = am.getRunningTasks(1);
    if (!tasks.isEmpty()) {
        ComponentName topActivity = tasks.get(0).topActivity;
        if (topActivity.getPackageName().equals(context.getPackageName())) {
            return "true";
        }
    }

    return "false";
}

希望这有帮助。