Android 判断程序在前台还是后台
2017-09-05 14:18
369 查看
1.自己写一个生命周期的回调
public class MyLifecycleHandler implements Application.ActivityLifecycleCallbacks { private static int resumed; private static int paused; private static int started; private static int stopped; @Override public void onActivityCreated(Activity activity, Bundle savedInstanceState) { } @Override public void onActivityStarted(Activity activity) { ++started; } @Override public void onActivityResumed(Activity activity) { ++resumed; } @Override public void onActivityPaused(Activity activity) { ++paused; android.util.Log.w("test", "application is in foreground: " + (resumed > paused)); } @Override public void onActivityStopped(Activity activity) { ++stopped; android.util.Log.w("test", "application is visible: " + (started > stopped)); } @Override public void onActivityDestroyed(Activity activity) { } @Override public void onActivitySaveInstanceState(Activity activity, Bundle outState) { } public static boolean isApplicationVisible() { return started > stopped; } public static boolean isApplicationInForeground() { // 当所有 Activity 的状态中处于 resumed 的大于 paused 状态的,即可认为有Activity处于前台状态中 return resumed > paused; } }
2.在Application中进行注册
public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); registerAct b91e ivityLifecycleCallbacks(new MyLifecycleHandler()); } }
3.在BaseActivity中进行状态的判断
public class BaseActivity extends Activity { public static boolean isForeground; private static final String TAG = "BaseActivity"; @Override protected void onResume() { super.onResume(); if (MyLifecycleHandler.isApplicationInForeground()){ isForeground = true; Log.e(TAG, "onResume: --->在前台"); }else{ isForeground = false; Log.e(TAG, "onResume: --->在后台"); } } @Override protected void onStop() { super.onStop(); if (MyLifecycleHandler.isApplicationInForeground()){ isForeground = true; Log.e(TAG, "onStop: ---->在前台"); }else{ isForeground = false; Log.e(TAG, "onStop: ---->在后台"); } } }
相关文章推荐
- Android 判断程序在前台运行还是后台运行
- Android判断程序是前台还是后台
- Android如何判断程序是在前台还是在后台运行
- Android之判断程序在前台运行还是后台运行
- Android 判断app是否在前台还是在后台运行
- (4.2.16.2)Android判断当前应用程序处于前台还是后台的两种方法
- Android判断当前应用程序处于前台还是后台的两种方法
- 【Android】判断你的应用在前台还是在后台
- Android判断当前应用程序处于前台还是后台的两种方法
- 在android 5.0以上,如何判断当前应用是在前台还是后台
- Android 判断app是否在前台还是在后台运行
- android判断当前应用程序处于前台还是后台
- android判断应用在前台还是后台
- (4.1.2.6)Android 判断app是否在前台还是在后台运行
- Android 开发: 判断自己的APP在前台还是后台
- Android 判断app是否在前台还是在后台运行
- Android判断当前应用程序处于前台还是后台的两种方法
- android判断当前应用程序处于前台还是后台的两种方法
- Android--判断App处于前台还是后台的方案
- 在android 5.0以上,如何判断当前应用是在前台还是后台