android 菜鸟问题。如何监听某应用当前正在与用户交互
注意:是应用,不是activity.
在activity里。只需要重写onresume(). 就可以知道当前activity正在与用户交互。
但是对于应用呢?意思就是说:我想要在整个应用监听,监听用户是否正在使用此应用。
因为一个应用里有N个Activity,我不可能在每个activity里的onresume函数里写监听的。当用户在使用应用的时候,跳到某个Activity A里去了。但是不小心按了home键,然后再点击进入应用,回到那个Activity A, 但是不想在Activity A里写onresume(). 因为有可能用户不一定是在Activity A里退出的,有可能是其他Aitivity. 所以不可能在所有的Activity都重写一个Onresume函数的。所以看下有没有办法在整个应用里监听。

解决方案 »

  1.   

    你可以写一个父类activity,在onresume做你想做的事,然后其它的activity继承它就行了
      

  2.   

    其实你的问题可以理解为:当前在前台与用户交互的应用是不是你的应用
    实现起来很简单,弄个定时器去检测当前与用户交互的应用,不过有点耗电
    public static String getCurrentPk(Context context){
        // 当前正在运行的应用的包名
        ActivityManager am = (ActivityManager) context.getSystemService("activity");
        String currentrunningpk = am.getRunningTasks(1).get(0).topActivity.getPackageName();
        return currentrunningpk;
    }