【发布时间】:2011-08-21 08:05:06
【问题描述】:
我一直试图弄清楚这一点,但无法弄清楚为什么会发生这种情况。这似乎很简单,但我无法解决这个问题。
这是我想做的事
当我启动应用程序时,
1. 如果后台服务(长时间运行的单例服务)没有运行,请在启动活动之前启动它。
2.启动“首页”活动
更新于 8 月 20 日
发生了什么:
1. 我启动应用程序但服务没有运行
2. 我启动了意图(通过 context.startService)
- 调用 context.startService
3.活动结束
4. onStartCommand 运行
如何在 Activity 开始运行之前让 onStartCommand 运行?
对此的任何建议都会减轻很多挫败感。在问这个问题之前我已经搜索了论坛,但找不到任何与我的问题相匹配的内容
非常感谢!
更新
感谢您的快速回复。
我应该提到我已经从应用程序的扩展运行它(在 onCreate 方法中启动服务)。
在我当前的实现中(如下),当我逐步浏览应用程序时,会发生以下情况。我认为这会导致服务在活动之前运行,但活动运行然后服务运行。这是我困惑的重点。
1.应用onCreate被调用
2. startService 方法运行
3.启动活动运行
4.服务onCreate被调用
- 永远不会调用 onStart 服务(我将尝试使用 onStartCommand,因为我不针对旧平台 - 感谢 Alexander 的建议)
public class MyApp extends Application {
@Override
public final void onCreate()
{
if(!MyService.isRunning()) // this is a static method with thread lock
{
Intent i = new Intent(context, MyService.class);
i.setAction(MyConstants.INTENT_START_SERVICE);
context.startService(i);
}
}
}
【问题讨论】: