了解更多的ActivityLifecycleCallbacks相关:https://www.jianshu.com/p/77f754446009
需求:app前台到后台超过5分钟再回来,需要刷新数据.
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//进程前台后台判断(前台到后台再到前台5分钟以上时间 刷新数据)
initForeground();
}
private void initForeground() {
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
int activityCount;
long stopTime;
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
}
@Override
public void onActivityStarted(Activity activity) {
if (activityCount == 0 && stopTime > 0){
long currentTimeMillis = System.currentTimeMillis();
long time = currentTimeMillis - stopTime;
//大于5分钟 刷新数据
if (time > 5 * 60 * 1000){
//执行刷新数据的逻辑
}
}
activityCount++;
}
@Override
public void onActivityResumed(Activity activity) {
}
@Override
public void onActivityPaused(Activity activity) {
}
@Override
public void onActivityStopped(Activity activity) {
activityCount--;
if (activityCount == 0){
stopTime = System.currentTimeMillis();
}
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
});
}