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在後臺的操作
}