2

可能重复:
Android:应用程序保护器应用程序如何工作?

新应用程序开始启动时如何通知我?明确地说,我单击应用程序图标,然后应用程序开始启动,我想将我的服务设置为该事件的观察者(如果有的话)。在应用程序启动之前是否有任何事件或某种方式知道这一点?

4

2 回答 2

1

如果我是你,我会打电话给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);
    }
};

定期检查以下两件事:

  1. 检查getRecentTasks()以了解用户最近启动了什么(需要GET_TASKS权限)
  2. getRunningAppProcesses()获取并在某处保留正在运行的进程列表,以防万一选择了太长的定期检查间隔并且添加/删除了某些进程但未在 getRecentTasks() 中显示

这样,我无法立即收到有关程序启动的通知,但可以很快(可能是几秒钟后)找到有关它的信息,以便对其进行处理。

还有一件事,当屏幕变暗时停止检查以节省电池可能是一个明智的主意。

于 2012-04-19T10:14:40.257 回答
0

android监听应用程序启动

你不能真的用意图或类似的东西来做这件事。看看这家伙的蛮横。不是一个很好的解决方案,但你会得到最接近的解决方案。

于 2012-04-17T17:29:35.960 回答