发送两个意图(一个通过startService
后跟另一个通过startActivityForResult
为了示例),Android是否保证在第二个意图(活动)之前处理第一个意图(服务) ?更具体地说,在这种情况下,它是否保证在Service.onStartCommand
之前调用Activity.onCreate
?
这假设一切都在同一个进程中运行,因此来自多个主线程的线程问题不会干扰。
我知道Android并不保证单个意图的处理顺序(收件人的顺序无法保证,但可能受到意图过滤器优先级的影响)但我找不到任何提及意图之间的顺序。
我个人认为,鉴于单个主应用程序线程,订单将被维护,但我面临一些我很难解释的错误,除非意图的顺序发生变化。
答案 0 :(得分:1)
答案 1 :(得分:1)
Context.startService
会异步startService
仅在服务调用其onCreate
方法后才会返回。但是,如果Service
在另一个应用程序中,那么它通常不会在同一个进程中运行,更不用说在同一个程序中。Context.startService
的致电。Activity.startActivityForResult
或startService
获取服务,指定应用程序在达到生命周期阶段时应该发生的事情,并让Android自行管理生命周期。脚注:另外,如果您的bindService
已在投放,则在致电Activity
时可能无法调用onCreate
方法。