应用程序进入ANR模式

时间:2011-03-30 19:33:43

标签: android zeroconf jmdns

当用户按下我的应用程序中的后退按钮时。这是场景:

  1. 用户启动应用程序 - 活动 出现
  2. 用户按下后退按钮
  3. 用户重新启动应用程序。 此时应用程序只显示一个空白屏幕,之后没有任何按钮(主页/后退)响应 有时会出现强制关闭对话框。
    注意:如果用户按下“主页”然后重新启动应用程序,则只有当用户按下“返回”然后重新启动它时才会发生这种情况。
  4. 在我的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

1 个答案:

答案 0 :(得分:2)

您可能正在UI线程上发出网络请求。您可以结帐Painless ThreadingAsyncTask来处理该问题。

请注意,在onCreateonDestroy中进行设置和拆卸可能是个好主意。在活动的life cycle期间,可以多次调用onStart;你的代码是否能防范这种情况?