在Android中,如何知道应用程序已经启动.我想检测启动时安装的所有应用程序,并根据应用程序的使用时间确定应用程序的优先级.是否有解决方案建议这样做?
我知道使用广播,但是当应用程序启动时,是否有一些Intent从ActivityManager发出,以及如何在代码中检测到这个Intent?任何其他解决方案也是受欢迎的.
解决方法:
第一部分:
如果您知道应用的包名称,请尝试此 *** 作(将以下代码段放在应用的onCreate方法中):
ActivityManager am= (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
然后,
boolean exit = false; while(!exit) { List<RunningTaskInfo> taskInfo = am.getRunningTasks(1); Componentname componentInfo = taskInfo.get(0).topActivity; if(componentInfo.getPackagename().equals("Your package name")) { //Do your work here exit = true; } }
当您启动应用程序时,它将被放入componentInfo中. taskInfo.get(0).topActivity将返回前台中的活动.因此,您可以通过使用第二个代码段比较包来了解您的应用已启动.
注意:将第二个代码段放在Asynctask中,以便检查应用程序是否已启动,可以在后台完成.
第二部分:
为了获得优先级,我认为你可以通过检查包含所有正在运行的应用程序的列表TaskInfo来实现.
总结以上是内存溢出为你收集整理的java – Android如何知道应用程序已启动并根据开始时间确定应用程序的优先级全部内容,希望文章能够帮你解决java – Android如何知道应用程序已启动并根据开始时间确定应用程序的优先级所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)