Android App开发中,有时需要判断应用是否处于当前活动状态,下面提到两个方法,都是从ActivityManager获得相关信息。

方法之一:

public boolean isAppOnForeground(String packageName) {ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);if (activityManager == null) {return false;}List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();if (appProcesses == null) {return false;}for (RunningAppProcessInfo appProcess : appProcesses) {if (appProcess.processName.equals(packageName)&& appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {return true;}}return false;}

方法之二:

public boolean isAppOnForeground(String packageName) {ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);if (activityManager == null) {return false;}ComponentName componentName = activityManager.getRunningTasks(1).get(0).topActivity;if (componentName.getPackageName().equals(packageName)) {return true;}return false;}

最后一定要添加权限 :

<uses-permission android:name="android.permission.GET_TASKS"/>

比较:

  • 两个方法都可以完成指定要求,但是方法二需要添加权限,而方法一不需要。

更多相关文章

  1. android实现字体闪烁动画的方法
  2. 在Fragment中设置控件点击方法,执行失败。
  3. Handler.post(action)方法
  4. Android 给 app默认权限(不弹窗申请权限)
  5. Android中滑屏初探 ---- scrollTo 以及 scrollBy方法使用说明
  6. Android异步加载图像小结 (含线程池,缓存方法)
  7. android上一些方法的区别和用法的注意事项
  8. Android实现下载文件功能的方法

随机推荐

  1. 研究表明盗版严重损害Android开发者利益
  2. Android View 的工作流程和原理
  3. 告别 USB,用 wifi 进行 Android 真机调试
  4. Android的Activity屏幕切换动画(二)-左右
  5. Android异步处理系列文章索引
  6. Android(安卓)进程间通信——AIDL
  7. Android中Style和Theme的使用
  8. Android样式:layer-list(层叠表)
  9. android UI更新问题 Thread和Looper以及H
  10. 关于Android MVC结构