【问题标题】:Broadcast Receiver that checks running processes?检查正在运行的进程的广播接收器?
【发布时间】:2012-12-11 22:19:17
【问题描述】:

我找不到任何此类接收器的示例...

我想创建一个广播接收器来检查定义的进程是否已启动以及何时停止,以便计算进程运行的时间。

如果您为我提供指导、教程或小示例以了解如何创建它,我将非常高兴。

谢谢!

【问题讨论】:

    标签: android broadcastreceiver process


    【解决方案1】:

    抱歉,没有用于启动和停止进程的广播。

    【讨论】:

    • 我不想启动或停止它们...我只想知道进程何时启动以及何时终止。我想算一下这两种状态之间的时间。
    • @Seishin:“我只是想知道一个进程何时开始以及何时终止”——您表示您想通过BroadcastReceiver 执行此操作。大概你认为有广播被发送来宣布进程的启动和停止。你误会了。进程的启动和停止没有广播。
    • 好的。那我可以用什么来完成这个任务呢?服务?
    • @Seishin:您可以让服务不断监控ActivityManager 之类的内容。希望这不适用于您要发布的应用程序,因为您的应用程序的用户可能会因过度使用电池而杀死您。此外,您将不得不处理用户和操作系统会不时摆脱您的服务的事实。您没有费心解释您要完成的工作,但通常那些导致开发人员想要监控进程的事情实际上应该通过修改 Android 源代码本身来完成(例如,家长控制)。
    • 这个想法很简单。我想创建一个计算特定进程(应用程序)运行时间的应用程序。所以它必须注册进程的开始和结束。但我真的不知道该怎么做,所以我需要一个建议。我认为使用在另一个线程上运行的服务可以解决问题。
    【解决方案2】:

    如果您可以编辑相关流程,您可以随时编辑流程,以便它现在可以在流程开始和停止时发出广播。然后你可以使用你的广播接收器来计算开始和停止之间的时间。

    如果您可以编辑相关流程,则可以使用持久变量来跟踪流程的启动和停止时间。或者即使你不能编辑进程,你也可以用一个瘦包装器替换所有对进程的调用,它使用持久变量来存储进程的开始时间,实际调用进程,最后存储停止时间。进程停止。

    如果你既不能编辑进程,也不能编辑对进程的调用,这是不可能的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-08
      相关资源
      最近更新 更多