public int mCount = 0;
public static boolean isQiantai;
public void regain() {
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
}
@Override
public void onActivityStarted(Activity activity1) {
mCount++;
//如果mCount==1,说明是从后台到前台
if (mCount == 1) {
//执行app跳转到前台的逻辑
isQiantai = true;
Log.i("xda_qianhou","后台到前台----当前是前台");
}
}
@Override
public void onActivityResumed(Activity activity) {
}
@Override
public void onActivityPaused(Activity activity) {
}
@Override
public void onActivityStopped(Activity activity) {
mCount--;
//如果mCount==0,说明是前台到后台
if (mCount == 0) {
//执行应用切换到后台的逻辑
isQiantai = false;
Log.i("xda_qianhou","前台到后台----当前是后台");
}
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
});
}
在application的oncreate方法中调用该方法
@Override
public void onCreate(){
super.onCreate();
regain();
//...
}
然后在需要的地方获取这个布尔值isQiantai来判断当前应用是否在前台,完成对应的操作。
if(App.isQiantai){
//执行APP在前台的操作
}else{
//执行APP在后台的操作
}