【问题标题】:Monitor a running app in android在android中监控正在运行的应用程序
【发布时间】:2013-01-22 02:07:05
【问题描述】:

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

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

【问题讨论】:

    标签: android service monitoring process-monitoring


    【解决方案1】:

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

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

    【讨论】:

    • 太好了,谢谢!对于寻找此解决方案的其他人,我不得不输入@sachy 的代码:String packageName= ((ActivityManager) getSystemService(Context.ACTIVITY_SERVICE)).getRunningTasks(1).get(0).topActivity.getPackageName(); 它还需要:<uses-permission android:name="android.permission.GET_TASKS" />
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多