我想得到系统当前正在运行的application的icon,该如何得到。当前获得焦点的app应该只有一个在前台执行。

解决方案 »

  1.   

    private PackageManager pm;pm.getApplicationIcon(packageName)不知道怎么获得当前的app...
      

  2.   

    谢谢你的建议,我是在系统下面编译的,所以可以访问些sdk不能访问的服务,我之前看了WindowManageServer 里面有个WindowState mCurrentFocus 可这个属性是默认的,在其他包里面的不到。
      

  3.   

    我倒是想到一个笨办法
    先获得所有正在运行的app
    然后判断3秒内 cpu 使用率 不为0 的那个 就是正在运行的因为app 退出后 并不释放内存,但是 不占用cpu 
    所以这个方法理论是可以实现的顺便问下 为什么非得获得正在运行的app
      

  4.   

    他们ui是这么设计的
    要在当前的statubar显示正在运行的app图标
      

  5.   

    运行的程序可多着呢,statusbar放不下的
    界面要简洁,说服UI改策划
      

  6.   

    没有,你理解错了,我的意思是当前系统获得焦点的window的icon,每次获得focus的只有一个app
      

  7.   

    ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    List<RunningTaskInfo> runningTasks = am.getRunningTasks(100);
    runningTasks.get(0).topActivity.getPackageName();这个是随便写的 没测试过 
    你改下看看
      

  8.   

    问下,可以根据得到的IWindow mClient来得到相应的 icon吗?或者是包名
      

  9.   


    没用过IWindow
    不过 PackageManager 就可以得到icon了上面那个getRunningTasks  可以获得正在运行的app吗?