我目前正在向广播接收器发射一个意图,该接收器反过来启动一个活动。
然后从同一个服务中,另一个 Intent 被触发到 Activity 中的广播接收器。
问题是 Activity 没有获得适用于它的 Intent,因为它在它还活着并且广播接收器注册之前就被触发了。
我想知道在发送 Intent 之前是否有确保 Activity 处于活动状态?
或任何其他解决方案?
我目前正在向广播接收器发射一个意图,该接收器反过来启动一个活动。
然后从同一个服务中,另一个 Intent 被触发到 Activity 中的广播接收器。
问题是 Activity 没有获得适用于它的 Intent,因为它在它还活着并且广播接收器注册之前就被触发了。
我想知道在发送 Intent 之前是否有确保 Activity 处于活动状态?
或任何其他解决方案?
如果活动还没有活动,为什么不开始活动呢?
如果新 Activity 未运行,则启动新 Activity 的一般机制(或者如果已在后台运行,则将 Activity 堆栈置于最前面)是在 startActivity() 调用中使用 NEW_TASK_LAUNCH 标志。
或者只是让活动有机会在触发 Intent 之前开始。
或者,您可以尝试使用sendOrderedBroadcast从广播中检索数据,然后重试。
public abstract void sendOrderedBroadcast (Intent intent, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)