Android:使用textView显示活动中的服务状态



我想在活动中显示我的服务的当前状态。我已经看到服务可以与活动绑定以执行不同的操作,但我只想知道它是已启动还是已停止。

我的主要活动启动和停止我的服务

startService(new Intent(MainActivity.this, MyService.class));
stopService(new Intent(MainActivity.this, MyService.class));

事实上,我的服务是"STICKY",并在后台做一些事情。我希望活动在文本视图中显示服务的状态(如"正在运行"或"未运行",第二个组成部分将是启动/停止服务的按钮。(带有根据状态变化的标签("启动服务"/"停止服务")。

那么,实现这一点的最佳技术解决方案是什么呢?

Thnks

您可以使用ActivityManager.getRunningServices()

参见http://developer.android.com/reference/android/app/ActivityManager.html#getRunningServices%28int%29

我发现了这个。

private boolean isMyServiceRunning() {
    ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
    for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
        if (MyService.class.getName().equals(service.service.getClassName())) {
            return true;
        }
    }
    return false;
}

然后,这意味着当活动恢复时,我需要刷新标签(服务是否运行)和按钮(启动/停止服务)。并每X秒复制一次更新。我认为这是可行的。

我只是期待一些更"现场"和实用的东西,但它确实奏效了。

最新更新