日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java stopself_然后,即使我停止了服务,Context.startForegroundService()也没有调用Service.startForeground()...

發布時間:2023/12/3 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java stopself_然后,即使我停止了服务,Context.startForegroundService()也没有调用Service.startForeground()... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

所以我的應用程序有一些觸發服務和通知的遠程操作 . 在調用 startForegroundService 和服務嘗試啟動通知的時間之間,事情可能會發生變化,因此服務會再次檢查事物的狀態,然后決定要做什么 .

因此,如果我的服務決定它不需要運行,它將調用:

stopForeground(true);

stopSelf();

但由于某些原因,這似乎不起作用,因為我在進行這些調用后幾乎立即得到此異常 .

11-16 13:34:23.488 15099-15099/mypackage E/AndroidRuntime: FATAL EXCEPTION: main

Process: mypackage, PID: 15099

android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground()

at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1768)

at android.os.Handler.dispatchMessage(Handler.java:106)

at android.os.Looper.loop(Looper.java:164)

at android.app.ActivityThread.main(ActivityThread.java:6494)

at java.lang.reflect.Method.invoke(Native Method)

at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

那我怎么解決這個問題呢?

謝謝 .

編輯:

我創建了一個示例項目,當Activity啟動時它所做的就是調用 startForegroundService 然后它在服務上執行此操作:

@Override

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

Log.i(TAG,"start");

stopForeground(true);

stopSelf();

return super.onStartCommand(intent, flags, startId);

}

它崩潰了,無論我是否使用 stopForeground(true) .

編輯:這似乎解決了它,但似乎真的很丑,必須創建一個假通知只是為了取消它 .

@Override

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

Log.i(TAG,"start");

String CHANNEL_ID = "my_channel_01";

NotificationCompat.Builder mBuilder =

new NotificationCompat.Builder(this, CHANNEL_ID)

.setContentTitle("My notification")

.setContentText("Hello World!");

startForeground(-1,mBuilder.build());

stopForeground(true);

stopSelf();

return super.onStartCommand(intent, flags, startId);

}

總結

以上是生活随笔為你收集整理的java stopself_然后,即使我停止了服务,Context.startForegroundService()也没有调用Service.startForeground()...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。