gpt4 book ai didi

Android 启动服务 onStart 和另一个问题

转载 作者:行者123 更新时间:2023-11-29 22:21:17 26 4
gpt4 key购买 nike

一段时间以来,我一直在尝试解决这个问题,但无法弄清楚为什么会这样。这看起来很简单,但我无法解决这个问题。

这是我希望发生的事情

当我启动应用程序时,
1. 如果后台服务(长时间运行的单例服务)没有运行,请在开始 Activity 之前启动它。
2.启动“首页” Activity

8 月 20 日更新
这是正在发生的事情:

1. 我启动了应用程序,但服务没有运行
2. 我启动了 Intent (通过 context.startService)
- 调用 context.startService
3. Activity 运行完毕
4. 运行onStartCommand

如何让 onStartCommand 在 Activity 开始运行之前运行??


对此的任何建议都会减轻很多挫败感。在提出这个问题之前,我已经搜索过论坛,但找不到与我的问题相匹配的任何内容
非常感谢!


更新
感谢您的快速回复。
我应该提到我已经从应用程序的扩展运行它(在 onCreate 方法中启动服务)。
在我当前的实现中(如下),这是我逐步执行该应用程序时按顺序发生的事情。我认为这会导致服务在 Activity 之前运行,但 Activity 运行然后服务运行。这是我困惑的重点。
1.调用onCreate应用程序
2.startService方法运行
3.启动 Activity 运行
4.调用onCreate服务
- 永远不会调用服务 onStart(我将尝试使用 onStartCommand,因为我不针对旧平台 - 感谢亚历山大的建议)

    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);
}
}
}

最佳答案

您可以创建一个新类来扩展 Application类(class)。此类将在调用主 Activity 之前运行,并且仅在应用程序首次启动时运行。这是您可以在打开主页 Activity 之前启动服务的地方。

关于Android 启动服务 onStart 和另一个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7129688/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com