android技术

Android切换前后台监听

2021-08-02  本文已影响0人  Topone
//用来控制应用前后台切换的逻辑
    private boolean isCurrentRunningForeground = true;
    @Override
    public void onStart() {
        super.onStart();
        if (!isCurrentRunningForeground) {
            LogUtils.d("切换到前台");
        }
    }

    @Override
    public void onStop() {
        super.onStop();
        isCurrentRunningForeground = isRunningForeground();
        if (!isCurrentRunningForeground) {
            LogUtils.d("切换到后台");
        }
    }

    public boolean isRunningForeground() {
        ActivityManager activityManager = (ActivityManager) getActivity().getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningAppProcessInfo> appProcessInfos = activityManager.getRunningAppProcesses();
        // 枚举进程
        for (ActivityManager.RunningAppProcessInfo appProcessInfo : appProcessInfos) {
            if (appProcessInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
                if (appProcessInfo.processName.equals(getActivity().getApplicationInfo().processName)) {
                    LogUtils.d("EntryActivity isRunningForeGround");
                    return true;
                }
            }
        }
        LogUtils.d("EntryActivity isRunningBackGround");
        return false;
    }
上一篇下一篇

猜你喜欢

热点阅读