2013-01-22 31 views
2

我正在尝试为Android设备制作一个自助服务终端类型的应用程序,并且我想确保该应用程序始终运行,并在其摔倒时重新启动它。在android中监视正在运行的应用程序

我最初的想法是创建一个服务,固定到前台,它定期检查(使用系统Handler)以查看活动(具有UI的主要应用程序)是否正在运行。如果一个特定的应用程序正在运行或不

Intent intent = new Intent("android.intent.action.MAIN"); 
intent.setComponent(ComponentName.unflattenFromString("com.blah.blah.MyApp")); 
intent.addCategory("android.intent.category.LAUNCHER"); 
startActivity(intent); 

是否可以看到:如果它没有运行,那么服务应该通过开展使用意图重新启动活动? 对于奖金互联网点 - 我可以告诉该应用程序是否在前台(并使用服务来保持活动在前台)?

回答

1

您可以查看当前的应用程序在顶部 String packageName= getSystemService(Context.ACTIVITY_SERVICE).getRunningTasks(1).get(0)).topActivity.getPackageName();

运行这段代码在你的后台服务在一个循环,并检查您的应用程序运行时(任何应用程序)包名。

+1

太好了,谢谢! 对于其他寻找这个解决方案的人来说,我不得不这样做了:@string packageName =((ActivityManager)getSystemService(Context.ACTIVITY_SERVICE))。 ;' 它还要求: '' – Jono

相关问题