我正在尝试为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);
是否可以查看特定应用是否正在运行? 对于奖励互联网积分 - 我可以告诉该应用是否在前台(并使用服务将活动保留在前台)?
答案 0 :(得分:1)
您可以检查顶部运行的当前应用程序(任何应用程序)包名称
String packageName= getSystemService(Context.ACTIVITY_SERVICE).getRunningTasks(1).get(0)).topActivity.getPackageName();
在后台服务中循环运行此代码并检查您的应用程序。