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

时间:2013-01-22 02:07:06

标签: android service monitoring process-monitoring

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

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

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 个答案:

答案 0 :(得分:1)

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

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