android 判断应用是否在前台

来源:互联网 发布:zabbix的端口号是多少 编辑:程序博客网 时间:2024/06/06 01:44

android应用查看当前app是否在前台,偶然看到这个,自己就尝试了一下看看

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

它是跟剧你传入的上下文,找到当前am.getRunningTasks(1)传入的1是maxNum,你传几都可以,不过都是取第一个,然后根据这个task的最上面的activity找所属的packageName,如果跟本应用相同那就是在最上面了
使用这段代码需要一个权限的: uses-permission android:name=”android.permission.GET_TASKS”

Timer timer = new Timer();    TimerTask timerTask = new TimerTask() {        @Override        public void run() {            boolean isBg = DeviceUtils.isApplicationBroughtToBackground(MainActivity.this);            if (isBg){                Log.e(TAG,"application is background");            }else {                Log.e(TAG,"application is not background");            }        }    };    timer.schedule(timerTask,5000,5000);

可以打日志看一下,没毛病

原创粉丝点击