在android中更改应用程序的监听器

时间:2013-01-12 21:00:15

标签: android listener packages

我正在尝试创建一个记录设备上各种应用程序使用情况的应用程序。例如:国际足联10分钟,GTA 23分钟等等。现在我有不断运行的服务,我有一个广播接收器,假设在任何应用程序包发生变化时触发(使用intent.action.PACKAGE_CHANGED),但不幸的是内部代码广播永远不会运行。我很感激,如果有人能说明问题或告诉我任何其他方法来做到这一点。感谢

public class ScreenReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
     Log.d("BROADCAST", "Works fine" );
}

}

这是Service类中的代码:

public int onStartCommand(Intent intent, int flags, int startId) {
    IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_CHANGED);
    ScreenReceiver recevier = new ScreenReceiver();
    registerReceiver(recevier, filter);runningApps();

    return START_STICKY;
}

1 个答案:

答案 0 :(得分:1)

PACKAGE_CHANGED意图只会在应用程序迭代发生变化时发送。它与应用程序的使用无关。

事实上,没有正式的方法来监控应用程序的使用情况。只有类似的解决方案:

  1. 直到果冻豆,您可以阅读日志并找出应用程序的流程何时开始以及何时关闭(或用户转移到其他应用程序)。

  2. 您可以随时查看最近推出的应用或当前正在运行的流程。

  3. 您可以创建一个启动器应用,找出正在其中启动的应用。

  4. 当然,我写的每个方法都有它的缺点,只能给你一个关于真实用法的线索,当然因为android支持同时运行多个app,我认为没有方法就足够了。