2

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

我最初的想法是创建一个服务,固定在前台,它会定期检查(使用系统Handler)以查看 Activity(带有 UI 的主应用程序)是否正在运行。如果它没有运行,那么服务应该通过使用以下方式启动一个意图来重新启动 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);

是否可以查看特定应用程序是否正在运行?而对于额外的互联网点 - 我可以判断该应用程序是否在前台(并使用服务将活动保持在前台)?

4

1 回答 1

1

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

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

于 2013-01-22T03:57:04.380 回答