有时候APP在进入后台的时候需要做一些特殊的操作,这时候我们需要对APP是否处于后台做出判断。
1. APP是否处于前台
private boolean isAppOnForeground() {
ActivityManager activityManager = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
String packageName = getApplicationContext().getPackageName();
List<ActivityManager.RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
if (appProcesses == null) {
return false;
}
for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
if (appProcess.processName.equals(packageName) && appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
return true;
}
}
return false;
}
2. 在BaseActivity的onstop方法中做出判断
public abstract class BaseActivity extends FragmentActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
if (!isAppOnForeground()) {
// do something
}
}
......
}
3. 其它activity继承该BaseActivity 即可