当用户按下我的应用程序中的后退按钮时。这是场景:
在我的onCreate()中,我有一些网络设置代码。但是,onDestroy()有相应的清理代码,所以我不明白为什么会发生这种情况。
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d(DEBUG_TAG, "onCreate()");
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Aquire the multicast lock
// Create an instance of JmDNS
// Add a listener for Bonjour services of a given type
}
@Override
protected void onDestroy() {
Log.d(DEBUG_TAG, "onDestroy()");
// Remove the services listener
// Set the reference to JmDNS instance null
// Release the multicast lock
super.onDestroy();
}
不知道发生了什么,也不知道如何调试它。
有趣的是 - "Zeroconf Browser"我从Android Market下载的用于调试我的热门应用程序 - 似乎也有同样的问题。
编辑:将代码从onStart()/ onStop()更改为onCreate()/ onDestroy()。和以前一样的问题。
编辑:对于遇到类似问题的人来说,这就是造成我痛苦的原因。 Android代码不是罪魁祸首: http://sourceforge.net/tracker/index.php?func=detail&aid=2933183&group_id=93852&atid=605791答案 0 :(得分:2)
您可能正在UI线程上发出网络请求。您可以结帐Painless Threading和AsyncTask来处理该问题。
请注意,在onCreate
和onDestroy
中进行设置和拆卸可能是个好主意。在活动的life cycle期间,可以多次调用onStart
;你的代码是否能防范这种情况?