gpt4 book ai didi

android - 如何在服务中设置 START_STICKY

转载 作者:行者123 更新时间:2023-11-29 15:52:19 24 4
gpt4 key购买 nike

我希望确保我的服务在后台运行,即使在用户关闭应用程序(从任务管理器或相关应用程序)后也是如此。我正在尝试实现 START_STICKY 但不知道如何正确覆盖 startService 方法以使其正常工作。

目前我只是使用startService方法来启动LoggingIn.class并将其绑定(bind)到MessagingService.class,如下所示:

startService(new Intent(LoggingIn.this, MessagingService.class));

我已经研究过方法 onStartCommand 是实现 START_STICKY 的常用位置,但是一旦服务启动,我就没有发现在我的应用程序中需要它我将所有其他类绑定(bind)到它:

private ServiceConnection mConnection = new ServiceConnection() {

public void onServiceConnected(ComponentName className, IBinder service) {
imService = ((MessagingService.IMBinder) service).getService();
}

public void onServiceDisconnected(ComponentName className) {
imService = null;
Toast.makeText(GroupMessaging.this, R.string.local_service_stopped,
Toast.LENGTH_SHORT).show();
}
};

    bindService(new Intent(GroupMessaging.this, MessagingService.class),
mConnection, Context.BIND_AUTO_CREATE);

如何正确实现 START_STICKY 并确保即使在应用关闭后我的服务仍保持 Activity 状态或重新启动?

最佳答案

您需要做的就是在 onStartCommand() 方法中返回 START_STICKY 标志:

@Override
public int onStartCommand (Intent intent, int flags, int startId){

// several lines of awesome code

return START_STICKY;
}

进一步的考虑:

如果您使用 Service 而不覆盖 onStartCommand(),它默认返回 START_STICKY,尽管通常代码由 运行>Service 放在onStartCommand() 方法中。

就是这样。你完成了,回家吧。

关于android - 如何在服务中设置 START_STICKY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29438988/

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