目前想做一个应用程序列表,列表中记录的是最近经常使用的应用程序,即按应用程序的打开次数进行排序。。
那么如何知道一个程序程序被找开或关闭呢?应用程序被打开或关闭之后有没有发出事件广播?

解决方案 »

  1.   

    应用程序被打开的次数肯定可以统计,我的手机里有个“高级设置/使用统计信息”里面有使用情况统计,
    应用程序   次数  使用时间
    无线桌面   46   751341ms
    音乐播放器 22   641280ms
    应用程序开启和关闭应该有相应的事件发出吧。
      

  2.   

    你可以看看home键recent tasks的源码 另外你说的程序是指task么? 如果是的 你就用activitymanager的runningtasksinfo来判断
      

  3.   


    我要获取的是程序的打开次数,来生成“经常使用”的应用程序列表,你说的recent tasks是“最近使用”,概念不同
      

  4.   

    http://stackoverflow.com/questions/2272168/listen-to-activitymanager-events这个人貌似想跟你做一样的事情 也貌似不行 你看看把 官方的api是没有广播的 
      

  5.   

    如果程序是有窗口的, 可以试试看用 FindWindows 函数去判断是否有该窗口
    如果知道程序的句柄, 可以通过检查句柄的方式去查看。 
      

  6.   

    实非常简单,不用同时按下什么组合按键,而是在拨号界面进行拨号即可。点击位于系统主屏的Dialer进入拨号界面,输入“*#*#4636#*#*”(不加引号)即可进入工程测试模式。这时可以看到出现了Testing的界面,包含了Phone information、Battery information、Battery history、Usage statistics四个选项,如下图,如果需要查看程序的历史运行时间,直接点击最后一项Usage statistics即可进入其分类,将上方的Sort by选择为Usage Time即可。下方列出的列表信息就是各个程序的历史运行时间。你可引用,如果自己想做一个实现同样的功能的可能比麻烦