Last active
May 29, 2019 06:59
-
-
Save twlkyao/f5629c31a51dc878ac153f0d24a0d133 to your computer and use it in GitHub Desktop.
Android应用前后台回调
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import android.app.Activity; | |
import android.app.Application; | |
import android.os.Bundle; | |
/** | |
* 应用前后台状态监听帮助类,仅在Application中使用 | |
* 参考:https://blog.csdn.net/bzlj2912009596/article/details/80073396 | |
*/ | |
public class AppFrontBackHelper { | |
private OnAppStatusListener mOnAppStatusListener; | |
public AppFrontBackHelper() { | |
} | |
/** | |
* 注册状态监听,仅在Application中使用 | |
* @param application | |
* @param listener | |
*/ | |
public void register(Application application, OnAppStatusListener listener){ | |
mOnAppStatusListener = listener; | |
application.registerActivityLifecycleCallbacks(activityLifecycleCallbacks); | |
} | |
public void unRegister(Application application){ | |
application.unregisterActivityLifecycleCallbacks(activityLifecycleCallbacks); | |
} | |
private Application.ActivityLifecycleCallbacks activityLifecycleCallbacks = new Application.ActivityLifecycleCallbacks() { | |
//打开的Activity数量统计 | |
private int activityStartCount = 0; | |
@Override | |
public void onActivityCreated(Activity activity, Bundle savedInstanceState) { | |
} | |
@Override | |
public void onActivityStarted(Activity activity) { | |
activityStartCount++; | |
//数值从0变到1说明是从后台切到前台 | |
if (activityStartCount == 1){ | |
//从后台切到前台 | |
if(mOnAppStatusListener != null){ | |
mOnAppStatusListener.onFront(); | |
} | |
} | |
} | |
@Override | |
public void onActivityResumed(Activity activity) { | |
} | |
@Override | |
public void onActivityPaused(Activity activity) { | |
} | |
@Override | |
public void onActivityStopped(Activity activity) { | |
activityStartCount--; | |
//数值从1到0说明是从前台切到后台 | |
if (activityStartCount == 0){ | |
//从前台切到后台 | |
if(mOnAppStatusListener != null){ | |
mOnAppStatusListener.onBack(); | |
} | |
} | |
} | |
@Override | |
public void onActivitySaveInstanceState(Activity activity, Bundle outState) { | |
} | |
@Override | |
public void onActivityDestroyed(Activity activity) { | |
} | |
}; | |
public interface OnAppStatusListener{ | |
void onFront(); | |
void onBack(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment