如果活动位于顶部,请通知活动

时间:2014-09-15 12:09:58

标签: android android-activity service binding

我正在开发一款Android应用。

我有一个定期运行的服务,从Web服务中获取一些数字。

提取完成后,结果将写入首选项。当用户启动应用程序时,将显示其主要活动。在onResume中,数字从首选项中检索,并显示在活动中。到目前为止,我很好。

我不知道如何实现的是,如果在计划的提取完成时活动位于顶部,则应通知活动。同时,如果活动不在顶部,则不应该启动,只需将数字写入首选项即可。

我该如何实现?有什么想法吗?

谢谢!

PS:现在我输入了所有这些内容,我有一个想法:活动是否应该在onResume中绑定到此服务并在onPause中取消绑定?

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码了解哪个应用程序位于顶部:

ActivityManager actvityManager = (ActivityManager) ClassName.this.getSystemService(ACTIVITY_SERVICE);
                List<RunningTaskInfo> procInfos = actvityManager.getRunningTasks(1000);
                String topApp = procInfos.get(0).topActivity.getClassName().toString();

                if(!topApp .contains("com.yourpackage"){
                   //DO WHATEVER YOU WANT

                }
                else{
                   //DO WHATEVER YOU WANT}