2014-02-25 58 views

回答

0

没有任何活动为应用程序启动。 当你发现它已经改变了,您可以查询当前的首要活动,但并执行操作:

ActivityManager sysActivitySvc = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE); 
String topActivity = sysActivitySvc.getRunningTasks(1).get(0).topActivity.getPackageName(); 
if(!topActivity.equals(lastTopActivity)) 
{ 
    lastTopActivity = topActivity; 
    //Do your stuff here 
} 

注意,轮询可能会影响电池的使用。不要每秒钟调查一次或两次以上的顶级活动。 另外,您需要注意您的服务保持活跃状态​​(Android喜欢杀死很多服务)。

+0

感谢您的帮助velis,我是否能够执行我自己的自定义操作?例如,即使我在后台保持服务处于活动状态,并确定顶级活动发生变化,也是如此。 –

+0

是的,如果需要,服务可以显示Toast或启动自定义活动/应用程序。 – velis

+1

谢谢我接受你的答案,因为没有其他适当的事件,这是一个快速解决这个问题。感谢所有的帮助。谢谢! –

1

这是说,这是不可能的 https://stackoverflow.com/a/8293788/472336

但我认为你可以看看启动一类应用,这些应用程序可以在这里做的是教程

http://arnab.ch/blog/2013/08/how-to-write-custom-launcher-app-in-android/

+0

感谢队友..这是我害怕的。我知道如何自定义启动设备上的任何应用程序,并知道如何让应用程序在后台运行。我在想什么是一种直接的方式来获得通知,如果一个应用程序启动,然后在那里显示警报排序? –

相关问题