后台服务是否可以触发activity的onclick事件?

Is it possible to trigger the onclick event of activity in background service?

比如我启动了一个activity,activity里面有一个按钮

然后我启动后台服务,这个服务会检查目标activity是否在前台,然后触发那个按钮的点击事件。

可以这样做吗?

为什么要触发 activity 的点击事件而不是将其结果通知给 activity?尝试使用从服务发送到 activity 的本地广播。 activity 注册该广播,在 BroadcastReceiveronReceive 中,您将触发您的 onClick 方法或您选择的任何其他方法。 Receiver 在 onResume 中注册,在 onPause 中注销,以保证 activity 实际上是可见的。

我不建议对您的 activity 使用直接依赖,因为如果在任何情况下您的 activity 未启动或根本不可见,这可能会导致 IllegalStateExceptions

在这种情况下,我强烈建议您使用像 "otto by square" 这样的事件总线概念。 您将从 activity 订阅事件,这将保持模块化并让您执行此功能