【发布时间】:2010-02-01 11:43:12
【问题描述】:
我目前有一个服务,当我启动它时运行良好,但是当我尝试使用 stopService 方法停止它时,它的 onDestroy 方法不会被调用。
这是我用来尝试停止服务的代码
stop_Scan_Button = (Button)findViewById(R.id.stopScanButton);
stop_Scan_Button.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Log.d("DEBUGSERVICE", "Stop Button pressed");
Intent service = new Intent(CiceroEngine. CICERO_SERVICE);
releaseBind();
Log.d("Stop_Scan_Button", "Service: " + service.toString());
stopService(service);
Log.d("Stop_Scan_Button", "Service should stop! ");
}
});
我认为使用 stopService 时调用 Service 的 onDestroy 方法是否正确?当我按下停止扫描按钮时,我的服务中的 onDestroy() 方法不会被调用。
我还有什么遗漏的东西要停止服务吗?
编辑:添加 onServiceConnected() 在 stopService 运行而不是 onServiceDisconnected() 时被调用,为什么会发生这种情况?
编辑:添加有关绑定的更多信息
我在 onCreate() 方法中调用 bindService,然后让 releaseBind() 方法解除绑定服务。
这是该方法的代码:
public void releaseBind(){
unbindService(this);
}
所以我认为解除绑定不是我的问题?
【问题讨论】: