Android:stopService 不调用 onDestroy

标签 android service

我在停止播放音频文件的服务时遇到了很大的问题。我想在播放另一个文件之前停止当前服务。

Activity :

public void playTrack(View view){       
    Intent i=new Intent(this,playService.class);
    i.setAction("com.c0dehunterstudios.relaxer.PLAY");
    
    if(isPlaying){ 
          stopService(i);   
          isPlaying=false;
          Log.v("ACTIVITY", "Stopping..");
    }
    
    startService(i);
    isPlaying=true;
}

服务:

@Override
public void OnDestroy(){
    Log.v("SERVICE","Service killed");
    player.stop();
    super.onDestroy();  
}

但遗憾的是它不起作用 - 实际上它甚至没有归结为 OnDestroy() 中的“服务被杀死”。

我做错了什么?

最佳答案

首先,它是 onDestroy,而不是 OnDestroy。其次,您必须使用@Override 批注进行编译时检查,因此您的服务代码应该看起来像这样:

@Override
public void onDestroy(){
    Log.v("SERVICE","Service killed");
    player.stop();
    super.onDestroy();  
}

关于Android:stopService 不调用 onDestroy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9086371/

相关文章:

Android - 动态缩放比预缩放更快,wtf?

android - 如何让 Sentry 自动检测android中的错误/崩溃

android - 使用 NetBeans 在 Android 上等待调试器

android - 泄漏服务连接是什么意思?

android - 为什么当可穿戴设备处于环境模式时不调用 onSensorChange

javascript - 在 AngularJS 中在哪里包装第三方插件?

Android listview,显示列表的用户末尾,然后自动滚动到顶部

android - 在另一个 Activity 中检索 sharedpreferences 值

grails - 在Grails中使用metaClass模拟 Action

multithreading - Delphi多线程程序中奇怪的0x0eedfade异常