在android中监视正在运行的应用程序

在android中监视正在运行的应用程序,android,service,monitoring,process-monitoring,Android,Service,Monitoring,Process Monitoring,我正在尝试为android设备制作一个kiosk类型的应用程序,我想确保该应用程序始终在运行,并在它崩溃时重新启动它 我最初的想法是创建一个固定在前台的服务,它定期检查(使用系统处理程序)活动(带有UI的主应用程序)是否正在运行。如果未运行,则服务应通过使用以下命令启动intent来重新启动活动: Intent intent = new Intent("android.intent.action.MAIN"); intent.setComponent(ComponentName.unflatte

我正在尝试为android设备制作一个kiosk类型的应用程序,我想确保该应用程序始终在运行,并在它崩溃时重新启动它

我最初的想法是创建一个固定在前台的服务,它定期检查(使用系统
处理程序
)活动(带有UI的主应用程序)是否正在运行。如果未运行,则服务应通过使用以下命令启动intent来重新启动活动:

Intent intent = new Intent("android.intent.action.MAIN");
intent.setComponent(ComponentName.unflattenFromString("com.blah.blah.MyApp"));
intent.addCategory("android.intent.category.LAUNCHER");
startActivity(intent);
是否可以查看特定的应用程序是否正在运行?
对于额外的互联网积分-我能告诉您该应用程序是否在前台(并使用该服务将活动保持在前台)吗?

您可以检查顶部运行的当前应用程序(任何应用程序)包名称
String packageName=getSystemService(Context.ACTIVITY_SERVICE).getRunningTasks(1.get(0)).topActivity.getPackageName()


在后台服务中循环运行此代码并检查应用程序。

太好了,谢谢!对于寻找此解决方案的其他人,我必须键入@sachy的代码:
String packageName=((ActivityManager)getSystemService(Context.ACTIVITY_SERVICE)).getRunningTasks(1.get(0.topActivity.getPackageName()它还需要: