后台服务是否可以触发activity的onclick事件?
Is it possible to trigger the onclick event of activity in background service?
比如我启动了一个activity,activity里面有一个按钮
然后我启动后台服务,这个服务会检查目标activity是否在前台,然后触发那个按钮的点击事件。
可以这样做吗?
为什么要触发 activity 的点击事件而不是将其结果通知给 activity?尝试使用从服务发送到 activity 的本地广播。 activity 注册该广播,在 BroadcastReceiver
的 onReceive
中,您将触发您的 onClick
方法或您选择的任何其他方法。 Receiver 在 onResume
中注册,在 onPause
中注销,以保证 activity 实际上是可见的。
我不建议对您的 activity 使用直接依赖,因为如果在任何情况下您的 activity 未启动或根本不可见,这可能会导致 IllegalStateExceptions
。
在这种情况下,我强烈建议您使用像 "otto by square" 这样的事件总线概念。
您将从 activity 订阅事件,这将保持模块化并让您执行此功能
比如我启动了一个activity,activity里面有一个按钮
然后我启动后台服务,这个服务会检查目标activity是否在前台,然后触发那个按钮的点击事件。
可以这样做吗?
为什么要触发 activity 的点击事件而不是将其结果通知给 activity?尝试使用从服务发送到 activity 的本地广播。 activity 注册该广播,在 BroadcastReceiver
的 onReceive
中,您将触发您的 onClick
方法或您选择的任何其他方法。 Receiver 在 onResume
中注册,在 onPause
中注销,以保证 activity 实际上是可见的。
我不建议对您的 activity 使用直接依赖,因为如果在任何情况下您的 activity 未启动或根本不可见,这可能会导致 IllegalStateExceptions
。
在这种情况下,我强烈建议您使用像 "otto by square" 这样的事件总线概念。 您将从 activity 订阅事件,这将保持模块化并让您执行此功能