检测android应用何时返回backrgound

在我的应用程序中,我需要检测我的应用程序是要在后台运行还是要切换到同一应用程序的另一个活动…我知道我必须使用onPause方法…但是如何区分这两种情况?

谢谢!

解决方法:

private static boolean isApplicationGoingToBackground(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;
    }

更新:已经声明getRunningTasks不保证准确性.

调用onStop. onStop在任何接管屏幕的onStart之后被调用-如果它是同一个apk包中的活动,则您不会进入后台.这确实需要GET_TASKS权限.

或绑定到onStart& unbind onStop-当您停止所有活动时,该服务将被onDestroyed(或者,如果您不想依靠onDestroyed来调用,则跟踪绑定与取消绑定-因为可能不会.).

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...