我有在该命令的主要活动启动的服务的Android应用程序:服务没有正确关闭
bindService(new Intent(ctx, MyService.class), _connection, Context.BIND_AUTO_CREATE);
主要activty不excatly自认倒霉服务(这就是为什么我didn't提供代码为服务连接)。这个想法是,主要活动handels服务寿命!
据“停止”与用户此代码后的服务点击我的应用程序的“关闭”按钮:
if (_service != null) {
unbindService(_connection);
}
//Some cleanup here ...
System.exit(0);
我知道在这一点上,没有任何其他活动绑定到服务事业的每一次活动从主要活动中调用,并从“onStop”的服务中解除绑定。
所以问题是我的服务不会在用户关闭应用程序时调用“onDestroy”! 当我删除“System.exit(0)”行时,它将正常关闭!
在这种情况下,如何确保服务正常关闭?
编辑:
好,我看这个讨论:Is quitting an application frowned upon?。
现在我重建我的活动。我有一个使用startService调用服务的活动,然后绑定服务。当活动被销毁时,它调用unbindService。
服务本身在onStartCommand中返回START_STICKY,使其更难以杀死它。它在所有工作完成后都会打电话给stopSelf。
现在我有问题,如果绑定仍然存在,我得到ServiceConnectionLeaked消息!那是什么?我怎么能阻止呢?使用
http://stackoverflow.com/questions/2033914/quitting-an-application-is-that-frowned-upon – Raghunandan