如何知道其他应用何时开始启动?
可能重复:
Android:应用程序Protector应用程序如何工作?
如何在新应用程序开始启动时收到通知? 很清楚地说,我点击应用程序图标,应用程序开始启动,我想将我的服务设置为该事件的观察者(如果有的话)。 在应用推出之前是否有任何事件或某种方式可以知道?
如果我是你,我会通过调用来获取ActivityManager
getSystemService(Context.ACTIVITY_SERVICE)
然后使用以下代码设置我的程序:
private final static Handler updateHandler = new Handler(); private static long WAKEUP_INTERVAL = 10000; // 10secs? private Runnable periodicUpdate = new Runnable() { @Override public void run() { checkRunningProcesses(); updateHandler.postDelayed(this, WAKEUP_INTERVAL); } };
定期检查以下两件事:
- 检查getRecentTasks()以找出最近推出的用户( 要求获得GET_TASKS权限)
- 从getRunningAppProcesses()获取并保留正在运行的进程的某个列表,以防定期检查间隔选择得太长并且添加/删除了一些进程但未在getRecentTasks()中显示
通过这种方式,我无法获得有关程序启动的即时通知,但可以很快找到(稍后可能是几秒钟)来做一些事情。
还有一件事,在屏幕变暗时停止检查可能是明智的想法,以节省电池电量。
android监听应用程序启动
你不能用意图或类似的东西真正做到这一点。 看看这个家伙的暴力黑客。 不是一个很好的解决方案,但你会得到最接近的。