如何获取刚刚在android中启动的应用程序详细信息

时间:2014-11-30 14:35:01

标签: android

您好我正在尝试在安装后跟踪某个应用。我想在他们开始时获得应用程序的信息。

它就像AppLock个应用程序一样,当我打开一个我激活锁定的应用程序时,它会知道我们activity输入密码。

实现这一目标 我已经提供了一项服务,并在1秒的时间间隔内进行了一次无限循环,以跟踪运行中的应用程序,但它确实在几个小时内耗尽了我的电池。 AppLock以一种很好的方式做到了这一点,这就是为什么它不能快速耗尽电池的原因。

我知道我目前的逻辑非常糟糕:

while(true) {
    final   ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
    final List<RunningTaskInfo> recentTasks = activityManager.getRunningTasks(Integer.MAX_VALUE);
    Log.d("Executed app", "Application executed : " +recentTasks.get(0).baseActivity.toShortString()+ "\t\t ID: "+recentTasks.get(0).id+"");         
    Thread.sleep(1000);
}

问题

如何以有效的方式完成此操作,例如AppLock app?

1 个答案:

答案 0 :(得分:0)

有一个名为android.intent.action.PACKAGE_RESTARTED的行动。

所以添加一个像

这样的广播接收器
    <receiver android:name="your.package.PackageRestartedReceiver">
        <intent-filter>
            <action android:name="android.intent.action.PACKAGE_RESTARTED"/>
            <data android:scheme="package"/>
        </intent-filter>
    </receiver>

添加onRecive功能,您就可以了。