2013-07-26 48 views
0

我已经实现了一个播放器服务,当音乐播放时关闭应用程序,然后应用程序崩溃并在调用onDestroy服务时重新启动手机。 我该如何解决这个问题?onDestroy服务崩溃并重新启动手机

@Override 
    public void onDestroy() { 
     // TODO Auto-generated method stub 
     super.onDestroy(); 
     if (!PlayerServices.mp.isPlaying()) { 
      stopService(playerService); 
      cancelNotification(); 
     } 
    } 

谢谢

+0

你得到什么日志。首先关闭播放器播放歌曲的静态方法是**错误** – Blundell

+0

在AVD不显示任何错误bcoz此应用程序读取外部存储器,所以我安装了这个应用程序在我的手机 – user2586364

+0

所以? LogCat说什么? – Blundell

回答

1

更改代码的顺序为:在最后

@Override 
public void onDestroy() { 
    // TODO Auto-generated method stub 
    if (!PlayerServices.mp.isPlaying()) { 
     stopService(playerService); 
     cancelNotification(); 
    } 
    super.onDestroy(); 
} 

呼叫super.onDestroy()。

+0

我已经尝试把super.onDestroy()放在最后,但应用程序仍然崩溃并重新启动 – user2586364

+0

如果没有更多信息,很难判断发生了什么。也许你可以从logcat显示你的日志。 –

+0

是的,当然,但这个应用程序读取存储..我不知道从驱动器读取。好。我会尽力找到问题。谢谢大家:) – user2586364

-2

你不应该为任何事情调用super.onDestroy()。在这种特殊情况下,你正在销毁服务,然后试图阻止它,这没有任何意义。你也应该看看你的logCat输出,以确保这是真的。

一般来说,如果一个生命周期方法期望你调用通过你继承的基类的方法,javadoc会这样说。例如,看看Activity.onPause()。

+1

永远不要调用'super.onDestroy()'是非常错误的建议,谨慎编辑它来解释你实际上的意思? – Delyan

+0

我不知道其他方式在播放音乐时在主屏幕中销毁应用程序 – user2586364

+0

super.onDestroy()不是必需的,并且可能会调用奇怪的结果。如果您对onDestroy()中的系统回调做出响应,请完成您的工作。这就是你需要做的。系统会为您破坏组件。 –

相关问题