我想编写一个记录手机上其他应用程序使用情况的应用程序 例如,我得到了进入Facebook的时间。
我知道每次Facebook启动时都无法让广播接收器醒来。 另一种方法是让服务始终在后台运行并检查运行的应用程序并每隔一秒左右进入睡眠状态,但我想这会耗尽我的电池更快。
那么最好的办法是什么?有什么样的日志我可以看一下吗?
答案 0 :(得分:2)
监控其他应用的唯一方法是监控前台活动。这将耗尽您的电池,但是当其他应用程序启动时没有广播,因此没有其他方法可以做到。您想启动一个检查当前前台活动的计时器任务。我强烈建议不要这样做。 要获取当前前台活动,请使用以下代码:
ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List< ActivityManager.RunningTaskInfo > taskInfo = am.getRunningTasks(1);
Log.d("topActivity", "CURRENT Activity ::"
+ taskInfo.get(0).topActivity.getClassName());
ComponentName componentInfo = taskInfo.get(0).topActivity;
componentInfo.getPackageName();
您需要以下权限:
<uses-permission android:name="android.permission.GET_TASKS"/>