public class AppStatusService extends Service {     private static final String TAG = "AppStatusService";     private ActivityManager activityManager;     private String packageName;      @Override     public IBinder onBind(Intent intent) {         return null;     }      @Override     public int onStartCommand(Intent intent, int flags, int startId) {         activityManager = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);         packageName = this.getPackageName();         new Thread() {             public void run() {                 try {                     while (true) {                         Thread.sleep(1000);                         if (isAppOnForeground()) {                             Log.i(TAG, "true");                         } else {                             Log.i(TAG, "false");                         }                     }                 } catch (Exception e) {                     e.printStackTrace();                 }             }         }.start();         return super.onStartCommand(intent, flags, startId);     }      private boolean isAppOnForeground() {         // Returns a list of application processes that are running on the device         List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();         if (appProcesses == null) return false;         for (RunningAppProcessInfo appProcess : appProcesses) {             // importance:             // The relative importance level that the system places              // on this process.             // May be one of IMPORTANCE_FOREGROUND, IMPORTANCE_VISIBLE,              // IMPORTANCE_SERVICE, IMPORTANCE_BACKGROUND, or IMPORTANCE_EMPTY.             // These constants are numbered so that "more important" values are             // always smaller than "less important" values.             // processName:             // The name of the process that this object is associated with.             if (appProcess.processName.equals(packageName)                     && appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {                 return true;             }         }         return false;     } } 

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. textview中有很多行,我只让它显示三行,最后
  2. Android(安卓)sd卡操作的一些坑
  3. 分析:Android和Linux正在合并为一种操作系
  4. Android(安卓)电话博大流程源码分析
  5. Android编译系统(四):Android(安卓)编译
  6. android app 设计总结
  7. wifi和GPRS下获取android的IP信息
  8. 安卓布局
  9. [Android各版本特性]Android(安卓)7.0 No
  10. 刚刚接触Android,写第一个Hello world 小