【问题标题】:Android - Stop IntentService - Better BroadcastReceiver or static variable?Android - 停止 IntentService - 更好的 BroadcastReceiver 或静态变量?
【发布时间】:2015-08-31 21:29:15
【问题描述】:

我的 Android 应用程序有一个 IntentService,它在后台执行一些冗长的操作。 现在我要做的是从 BroadcastReceiver 停止服务(通过停止我的意思是将服务中的标志设置为 true,以便它在以下迭代中结束)。 为了将此标志设置为 true,以下哪个选项会更好:

1) 将该标志声明为静态并直接从 BroadcastReceiver 修改它

2) 在 IntentService 中声明一个 BroadcastReceiver 并发送一个标志值设置为 true 的广播

3) 任何其他方式

谢谢

【问题讨论】:

  • 我在你的 IntentService 类上创建了一个public static volatile boolean Running= true;,所以你可以像这样更改值:YourService.Running = true // 如果它正在运行,如果你停止它,则为 false

标签: android broadcastreceiver android-broadcast


【解决方案1】:
  1. 我会在这里避免使用静态值。这不是一种很好的风格,尽管它显然可以工作。
  2. 就可以了,但这可能更容易:
  3. 使用 startService 向服务发送意图。在那个意图中设置一个额外的代表你的标志。 在您的 Service 的 onStartCommand 中检查是否设置了正确的值,如果是,请更新变量。

【讨论】:

    猜你喜欢
    • 2011-08-28
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 2018-02-10
    • 1970-01-01
    相关资源
    最近更新 更多