gpt4 book ai didi

android - Context.startForegroundService() 然后没有调用 Service.startForeground

转载 作者:太空宇宙 更新时间:2023-11-03 10:59:46 27 4
gpt4 key购买 nike

我的应用程序将在 MainActivityonCreate 中调用 startForegroundService(intent)。我将 startForeground(ON_SERVICE_CONNECTION_NID, notification) 放在 ServiceonCreatestartCommand 中。但我仍然偶尔会收到此错误。

Exception android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground()
android.app.ActivityThread$H.handleMessage (ActivityThread.java:1775)
android.os.Handler.dispatchMessage (Handler.java:105)
android.os.Looper.loop (Looper.java:164)
android.app.ActivityThread.main (ActivityThread.java:6541)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:240)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:767)

怎么会这样?onCreatestartCommand 是否有可能在 5 秒内未被调用?如果是这样,我们应该如何正确调用 startForegroundService

2017-12-09 更新

不知道为什么大家都说和这个问题一样:Context.startForegroundService() did not then call Service.startForeground()你甚至可以在那里找到我的评论。

之所以不同,是因为您可以在这个问题的第一行看到。我已将 startForegroundServicestartForeground 放在正确的位置,但它仍然随机显示此错误。

这是 Google 问题跟踪器:https://issuetracker.google.com/issues/67920140

Stopping the service before this happens will cause a crash.

这是服务生命周期的另一个问题。服务关闭后断言可能会被错误触发。

最佳答案

我遇到了同样的问题,在花时间找到解决方案后,您可以尝试下面的代码。如果您使用 Service,则将此代码放入 onCreate,否则您使用 Intent Service,然后将此代码放入 onHandleIntent

if (Build.VERSION.SDK_INT >= 26) {
String CHANNEL_ID = "my_app";
NotificationChannel channel = new NotificationChannel(CHANNEL_ID,
"MyApp", NotificationManager.IMPORTANCE_DEFAULT);
((NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE)).createNotificationChannel(channel);
Notification notification = new NotificationCompat.Builder(this, CHANNEL_ID)
.setContentTitle("")
.setContentText("").build();
startForeground(1, notification);
}

并称之为

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
context.startForegroundService(getSyncIntent(context));
} else {
context.startService(getSyncIntent(context));
}

关于android - Context.startForegroundService() 然后没有调用 Service.startForeground,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46803663/

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