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

标签 android service monitoring process-monitoring

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

我最初的想法是创建一个固定在前台的服务,它会定期检查(使用系统 Handler)以查看 Activity(带有 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);

是否可以查看特定应用程序是否正在运行? 对于奖励互联网积分 - 我可以判断该应用程序是否在前台(并使用该服务将 Activity 保持在前台)吗?

最佳答案

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

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

关于android - 监控android中正在运行的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14450457/

相关文章:

android - 如何从 AlarmManager 启动服务

android - SharedPreferences 有时会被删除

monitoring - 为什么zabbix agent UserParameter和zabbix server在同一台机器上不起作用

android - 包含花括号的 URL 的 HttpClient 问题

Android 通知 : add text after app's name, 之前

android - 谷歌地图地理定位 api : access not configured

android - 我可以使用 GoogleSignInApi 和 SMTP 服务器(如果可能)或以其他方式发送没有密码的电子邮件吗?

objective-c - 为在 Finder 中选择的多个文件禁用 NSService 上下文菜单

bash - 如何通过 TCP 匹配模式?

java - ehcache监视器: installation/configuration