为什么我在连接mysql数据库时总是出现卡机的呢?mysql服务器是其他人的,我们在同一个局域网里。有什么办法解决不?
用线程可以吗?如果可以能写出来吗?谢谢。

解决方案 »

  1.   

    线程是异步处理数据的,我想链接数据库这边应该解决不了你说的问题,你可以试试!注意同步的问题。很久没搞mysql这样的数据库了,你去 javaee 区问问,那边专业的多点,我搞android用的是内嵌的SQLite数据库。
      

  2.   

    启动新线程在线程中连接mysql数据库将连接代码段放入线程run方法中就行
      

  3.   

    回三楼。我也是这样连的。我的代码:
        class ButtonListener implements OnClickListener
        {
    public void onClick(View v)
    {
    handler.post(updateThread);
    }
        
    Handler handler = new Handler();

    Runnable updateThread = new Runnable()
    {
    public void run() 
    {
    /**
     * 我连接数据库的代码区
     */
    }
    };    }
    }
      

  4.   

    应该是查询和连接都卡。我的是通过pc机连接局域网内的其他pc的mysql数据库。
      

  5.   


    LZ,你是说你在链接时,跟新UI么,用子线程来跟新主线程的UI,肯定是会卡的,你试试 lopper 
      

  6.   

    handler.post(updateThread);用Runnable是会卡的
    class ButtonListener implements OnClickListener
    {
    public void onClick(View v)
    {
       new Thread(new Runnable(){
    @Override
    public void run() {
    /**
                      * 你连接数据库的代码
                      */
    }
    }).start();
    }
    }
      

  7.   


    LZ 是通过runOnUiThread 来更新UI进度条的吗?
      

  8.   

    你这个应该是和主线程邦定的,可以邦定handlerthread线程
      

  9.   


    这实际上还是在UI线程去做的耗时操作,post 会把updateThread 发送到 hanlder 所在的Thread的消息队列中,而这个消息队列是UI的消息队列。可以采用9楼的方法实现异步操作 ,但那不是android推荐的方式。 正确的操作步骤应该为:class ButtonListener implements OnClickListener
      {
    public void onClick(View v)
    {
    handler.post(updateThread);
    }
     
    Handler handler = new Handler();Runnable updateThread = new Runnable()
    {
    public void run() 
    {
    /**
    * 我连接数据库的代码区
    */
    }
    };
    updateThread .start();  }
    }
      

  10.   

    上面写错了,正确的操作步骤应该为:class ButtonListener implements OnClickListener
      {
    public void onClick(View v)
    {
    updateThread .start();
    }
     
    Handler handler = new Handler();Runnable updateThread = new Runnable()
    {
    public void run() 
    {
    /**
    * 我连接数据库的代码区
    */
    }
    };  }
    }
      

  11.   

    建议楼主把两个线程的id打印出来,确定是不同的id(不同的线程);还有建议动态加载数据参考如下文档:
    http://blog.csdn.net/mayingcai1987/article/details/6273606