【问题标题】:How to access Running Services screen programmatically?如何以编程方式访问正在运行的服务屏幕?
【发布时间】:2011-04-07 10:30:16
【问题描述】:

我无法找到访问我们通常使用的运行服务屏幕的方法:

Menu -> Setting -> Applications -> Running Services

对于一些程序员来说这是不可能的,甚至我在互联网上搜索了几天后也没有得到任何东西,但是像 Advance 任务杀手和 Advance 任务管理器这样的应用程序很少能通过他们的应用程序一键轻松访问此屏幕。

【问题讨论】:

标签: android service screen


【解决方案1】:

在 android 设置代码中没有这样的意图。检查下面的代码。

<activity android:name="RunningServices"
              android:label="@string/runningservices_settings_title"
              android:clearTaskOnLaunch="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.MONKEY" />
            <category android:name="android.intent.category.VOICE_LAUNCH" />
            <category android:name="com.android.settings.SHORTCUT" />
        </intent-filter>
    </activity>

正如 commonsware 在其他线程中所说,壁橱是管理应用程序意图。您确定第三方应用程序可以做到吗?如果是这样,应用程序的名称是什么?我认为他们通过包管理器获取正在运行的服务,然后创建类似的 UI。

【讨论】:

  • @Vinoth tahts 我的想法可能是他们获得了所有正在运行的服务,然后创建了一个类似于操作系统默认 UI 的 UI。顺便说一句,这些应用程序的名称是 Advance Task Manager 和 Advance Task Killer。
  • @Vinoth 我使用 getRunningServices() 获得了所有服务,并创建了与运行服务屏幕几乎相同的布局,但你能告诉我 android 是如何真正停止服务的,因为我尝试使用 stopService() 停止服务但它似乎不起作用。你能帮我解决这个问题吗????
  • 我致力于修改设置应用程序,因此我对这段代码有所了解。 Android 使用 forceStopPacakge API 来停止服务或活动。您需要将包名称传递给此 API。但是有一个问题。您的应用需要像平台应用一样进行签名才能访问此 API。
  • AOSP 平台密钥和证书位于 build/target 文件夹中。但同样,不同的制造商将有不同的密钥。您是否尝试在活动管理器中使用 restartPackage()。尽管此 API 已被贬值,但它仍然可以工作。这基本上会强制停止。在去 NDK 之前尝试一下这个 API。您需要在清单文件中添加“android.permission.RESTART_PACKAGES”。
【解决方案2】:
【解决方案3】:

这是这个问题的解决方案

Click Here

【讨论】:

  • 500 内部服务器错误。解决方案应该在这里
猜你喜欢
  • 2010-11-03
  • 1970-01-01
  • 1970-01-01
  • 2012-05-15
  • 1970-01-01
  • 2011-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多