我正在尝试为 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/