I am trying to do a real-time chat application (where the Android
user's text shows up real-time in a web interface running in a browser
on someon'es PC).  Right now I'm having it post the text in a textbox
using "onKeyUp" and running it in a background thread (using
"thread.join()" so it doesn't have to finish sending one character
before it sends the next one - to keep the app from freezing up) and
that seems to be running very inefficiently.  I am posting the code I
am using, can someone help me clean it up and/or make it run more
efficiently?

===========================================================

    String presponseBody;
    String postdata;
    public boolean onKeyUp(int keyCode, KeyEvent event)
    {
                final long mydate = System.currentTimeMillis();
                String showtext = mytext.getText().toString();
                try {
                        postdata = 
URLEncoder.encode(mytext.getText().toString(), "UTF-8");
                } catch (UnsupportedEncodingException e1) {
                        chatscreen.append("There was a problem sending your 
text.  Please
try again.\n");
                }

                // send text using background thread
                final Handler phandler = new Handler();
                Thread pthread = new Thread()
                {
                        public void run()
                        {
                                // make http post
                                HttpClient chatclient = new DefaultHttpClient();
                                HttpPost chatpost = new 
HttpPost("http://www.my-web-site.com/
postdata.php?data="+postdata);

                                // response handler
                                ResponseHandler<String> responseHandler = new 
BasicResponseHandler
();
                                try {
                                        // if user types exit, exit out of 
program
                                        if (postdata.compareTo("exit") == 0)
                                        {
                                                removeUpdates();
                                                System.exit(0);
                                        }
                                        else
                                        {
                                                presponseBody = 
chatclient.execute(chatpost, responseHandler);
                                        }
                                } catch (ClientProtocolException e) {
                                        // error sending message
                                        presponseBody = "There was an error 
retrieving the message.
Please try again.\n";
                                } catch (IOException e) {
                                        // error sending message
                                        presponseBody = "There was an error 
retrieving the message.
Please try again.\n";
                                }
                                phandler.post(
                                        new Runnable()
                                        {
                                                public void run()
                                                {
                                                        // not doing anything 
with this...
                                                }
                                        }
                                );
                        }

                        private void removeUpdates() {
                                // TODO Auto-generated method stub
                        }
                };
                pthread.start();
                try {
                        // join the thread so we don't freeze the UI
                        pthread.join();
                } catch (InterruptedException e) {
                        // do nothing
                }
        return true;
    }

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to