例如,我开始了一项活动,活动中有一个按钮
然后我启动后台服务,此服务将检查目标活动是否在前台,然后触发该按钮的click事件。
是否可以这样做?
答案 0 :(得分:3)
我强烈建议你在这种情况下使用像“otto by square”这样的eventbus概念。 您将订阅活动中的事件,这将保持模块化并允许您执行此功能
答案 1 :(得分:2)
为什么要触发活动的点击事件而不是通知活动有关其结果?尝试使用从服务发送到活动的本地广播。活动注册该广播,并在onReceive
的{{1}}中触发您的BroadcastReceiver
方法或您选择的任何其他方法。接收方在onClick
注册,未在onResume
注册,以保证活动实际可见。
我不建议直接依赖您的活动,因为如果在任何情况下您的活动没有开始或根本不可见,这可能会导致onPause
。