gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 01:57:41 27 4
gpt4 key购买 nike

我正在尝试制作一个应用程序来记录设备上各种应用程序的使用情况。例如:FIFA 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" );
}

这是服务类中的代码:

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;
}

最佳答案

PACKAGE_CHANGED仅当应用本身发生变化时才会发送 Intent 。它与应用程序使用无关。

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

  1. 在 jelly bean 之前,您可以阅读日志并了解某个应用程序的进程何时启动以及何时关闭(或用户移动到另一个应用程序)。

  2. 您可以不时地轮询最近启动的应用程序或当前正在运行的进程。

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

当然,我写的每一种方法都有它的缺陷,只能给你一个关于实际用法的线索,当然,因为 android 支持同时运行多个应用程序,我不认为任何方法就足够了。

关于android - 在 android 中更改应用程序的监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14297903/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com