方法一:

public class MyApplication extends Application implements Application.ActivityLifecycleCallbacks {    private String TAG="MyApplication";    @Override    public void onCreate() {        super.onCreate();        registerActivityLifecycleCallbacks(this);    }    public int count = 0;    @Override    public void onActivityStopped(Activity activity) {        Log.v(TAG, activity + "onActivityStopped");        count--;        if (count == 0) {            Log.v(TAG, "切到后台");        }    }    @Override    public void onActivityStarted(Activity activity) {        Log.v(TAG, activity + "onActivityStarted");        if (count == 0) {            Log.v(TAG, "切到前台");        }        count++;    }    @Override    public void onActivitySaveInstanceState(Activity activity, Bundle outState) {        Log.v(TAG, activity + "onActivitySaveInstanceState");    }    @Override    public void onActivityResumed(Activity activity) {        Log.v(TAG, activity + "onActivityResumed");    }    @Override    public void onActivityPaused(Activity activity) {        Log.v(TAG, activity + "onActivityPaused");    }    @Override    public void onActivityDestroyed(Activity activity) {        Log.v(TAG, activity + "onActivityDestroyed");    }    @Override    public void onActivityCreated(Activity activity, Bundle savedInstanceState) {        Log.v(TAG, activity + "onActivityCreated");    }}

方法二:


@Overrideprotected void onStart() {    super.onStart();    isCurrentRunningForeground = isRunningForeground(this);    if (isCurrentRunningForeground) {        Log.d(TAG, "切到前台 activity process");    }}@Overrideprotected void onStop() {    super.onStop();    isCurrentRunningForeground = isRunningForeground(this);    if (!isCurrentRunningForeground) {        Log.d(TAG, "切到后台 activity process");    }}public boolean isRunningForeground(Context context) {    ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);    List appProcessInfos = activityManager.getRunningAppProcesses();    // 枚举进程    for (ActivityManager.RunningAppProcessInfo appProcessInfo : appProcessInfos) {        if (appProcessInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {            if (appProcessInfo.processName.equals(context.getApplicationInfo().processName)) {                Log.d(TAG, "切到前台");                return true;            }        }    }    Log.d(TAG, "切到后台");    return false;}


更多相关文章

  1. Android 方法数超过64k限制的解决办法
  2. android的Services生命周期和使用方法
  3. Android onClick事件三种实现方法
  4. android学习——android 常见的错误 和 解决方法
  5. Android详细的对话框AlertDialog.Builder使用方法
  6. Android Studio 3.0 gradle提示太老 解决方法
  7. Android 中自定义控件和属性(attr.xml,declare-styleable,TypedA
  8. [Android]LayoutInflater的inflate方法半详解
  9. Android与Unity交互调用mUnityPlayer.quit()方法退出返回上一个A

随机推荐

  1. JS 函数
  2. 图文列表和课程表
  3. 头发如何上色?SAI头发上色技法!
  4. 字符串和数组的API演示
  5. 如何快速画出金属的质感?金属质感的画法
  6. 怎么画动漫人物?动漫插画绘画教程
  7. 字符串与数组的 api实例演示
  8. Android(安卓)学习笔记--android――Acti
  9. Android(安卓)Vibrator手机振动 API详解
  10. FFmpeg的Android平台移植—编译篇