这是我的代码-publicclassBackgroundServiceextendsService{@OverridepublicintonStartCommand(Intentintent,intflags,intstartId){super.onStartCommand(intent,flags,startId);newServiceThread(startId);returnSTART_NOT_STICKY;}classServiceThreadextendsThread{privateintstartId;ServiceThread(intstartId){this.start
我是android的初学者,对java的经验不多......我有一个创建ALARMMANAGER并启动指向服务的alarmManager.setRepeating()的Activity。onCreate中的此服务设置了部分唤醒锁来执行代码的整个执行(该应用程序是为非用户交互而设计的,因此手机始终处于待机状态)。所有这些都很完美。有时服务不应该执行整个代码,而是在执行之前退出。所以我使用了StopSelf但我有一些疑问:Service中的onDestroy函数有删除唤醒锁的代码。StopSelf()会调用它吗?无论如何,如果我没有指定任何函数来终止服务,代码执行后什么时候终止?所以在我的
IIUC,给定的Android服务应该只有一个实例,它是一个单例。然而,我的服务被多次实例化,虽然我什么都不做。当服务崩溃时(例如当我通过adb卸载应用程序时),它被安排重新启动(“计划重新启动崩溃的服务..”)。我理解这是服务具有粘性的结果。之后,当我的应用程序启动时,它会调用startService()和bindService(),并且服务得到适当的启动和绑定(bind)。但服务是重新实例化并重复调用onCreate()计划重启。然后每个实例等待客户端绑定(bind)和注册,但是onBind()只是在“主”服务实例中调用。额外的实例稍等客户端绑定(bind),并且由于没有发生,他们
所以我了解服务生命周期等等。但是我很困惑startId参数是干什么用的?publicintonStartCommand(Intentintent,intflags,intstartId)我知道它是与stopSelf(int)结合使用的,但我不明白要点是什么或生成startId的位置。使用stopSelf(int)属于什么用例? 最佳答案 WhatusecasewouldusingstopSelf(int)fallunder?第1步:调用startService()第2步:再次调用startService()第3步:调用stopSel
谷歌搜索,我已经多次看到这个问题,过去几年在这个论坛上的一些帖子。我从未见过有人得到直接的答案。我有一个前台服务试图在运行2小时后通过执行this.StopSelf()自行停止。绑定(bind)的时候和未绑定(bind)的时候我都试过了。在AVD和设备上。它根本不起作用。这是Android中的错误吗?(运行2.3.3)。服务如何停止自身? 最佳答案 如果你使用前台服务,你应该调用:stopForeground(true);就像您使用startForeground启动它一样。stopSelf用于正常服务。前台服务很特别...:)顺便说
假设我的Service的onStart()处理程序中有代码来启动一个线程来做一些事情,然后调用stopSelf()。stopSelf()在线程完成之前被调用。究竟会发生什么?我自己对此进行了测试,并且我的线程会继续执行直到完成。Android是否听到stopSelf()调用,但将其推迟到线程完成?@OverridepublicvoidonStart(Intentintent,intstartid){newThread(newRunnable(){publicvoidrun(){//TODOsomelongrunningoperation}}).start();stopSelf();}
我有一个Activity,我在其中启动并绑定(bind)到下载Service。Service中调用stopSelf()时,Activity中的onServiceDisconnected()不会被调用。我希望它会被调用,因为如果Service停止,所有绑定(bind)的Activity都应该解除绑定(bind)。我错过了什么? 最佳答案 根据官方文档,onServiceDisconnected()会在服务崩溃或被杀死时被调用。友情链接http://developer.android.com/reference/android/cont
调用有什么区别stopSelf(),stopSelf(int)或stopService(newIntent(this,MyServiceClass.class))在onStartCommand()内?例如,如果我以这种方式启动相同的服务两次:...IntentmyIntent1=newIntent(AndroidAlarmService.this,MyAlarmService.class);myIntent1.putExtra("test",1);IntentmyIntent2=newIntent(AndroidAlarmService.this,MyAlarmService.clas