每一个应用程序的启动有办法获得启动的包名吗?目前想到的有通过不断循环监听栈顶得改变来判断
List<RunningTaskInfo> taskinfos = am.getRunningTasks(1);
RunningTaskInfo currenttask = taskinfos.get(0);
String packname = currenttask.topActivity.getPackageName();
System.out.println("当前运行"+packname);
但是循环监听这个很耗性能的。  有没有更好地方法,求赐教