Hi Frank,

Thanks for the suggestion. Are you aware of any tutorial or anything
like that which would help me do all what you said.
Tommy is also trying to get me a code which uses SOAP request to talk
to the server.

Thanks,
Raqeeb

On Apr 8, 2:42 am, Frank Weiss <[email protected]> wrote:
> I think you're doing it the hard way, but maybe that's on purpose. The easy
> way is to use UrlConnection instead of sockets and use AsyncTask instead of
> creating threads by hand. AsyncTask uses a thread pool and makes it really
> easy to hook up actions and responses with the UI. Trying to get a response
> back to the UI from a non-UI thread is a well-known headache for Anfroid
> programmers.
>
> On Wed, Apr 7, 2010 at 10:36 PM, raqz <[email protected]> wrote:
> > Hi,
>
> > I have a main class activity that does the task of sending control to
> > other activities on click of a button. I am also starting a thread in
> > the main class. This thread basically sets up a connection with the
> > server and is active throughout the lifetime of the application.
> > I have two functions in the thread class, send and receive data from
> > server. Therefore, when the other activities need to send/receive data
> > from server, they use those particular functions.
> > First of all please let me know if what I am trying to do is fine as
> > per the architecture of the operating system. If its fine, when I try
> > to run the code, the app crashes and i see a NullPointerException and
> > a RuntimeException in the DDMS log.
> > Could some one please help me out in this or suggest a better way to
> > implement the concept.
> > Also, please be assured that, the other functionality of the code
> > works perfectly fine.
> > The main class code is as below
> > [code]
> > package com.getfriends;
>
> > import java.util.ArrayList;
> > import java.util.Iterator;
> > import java.util.List;
> > import java.util.StringTokenizer;
> > import android.app.Activity;
> > import android.app.ListActivity;
> > import android.os.Bundle;
> > import android.widget.ArrayAdapter;
> > import android.widget.ListView;
> > import android.widget.Toast;
>
> > public class GetFriendsActivity extends Activity{
>
> >                private MyFriend obj= new MyFriend();
> >                List<MyFriend> listOfFriends = new ArrayList<MyFriend>();
>
> >                int i=0;
> >                private String FName=null;
> >                private String LName=null;
> >                private String Latitude=null;
> >                private String Longitude=null;
> >                private String TimeStamp=null;
> >                public static ArrayList<String> namesArray=new
> > ArrayList<String>();
>
> >                public void onCreate(Bundle savedInstanceState) {
> >                super.onCreate(savedInstanceState);
> >                Thread cThread= null;
> >                try{
> >                cThread = new Thread(new ConnectSocket());
> >                cThread.start();}
> >                catch (Exception e){
> >                        Toast.makeText(getBaseContext(),
> >                            "Unable to start thread",
> >                            Toast.LENGTH_LONG).show();
>
> >                }
> >                Toast.makeText(getBaseContext(),
> >                    "Starting",
> >                    Toast.LENGTH_LONG).show();
>
> >                try {
> >                                getFriendsList();
> >                        } catch (Exception e) {
> >                                Toast.makeText(getBaseContext(),
> >                            "Unable to fetch friend list:"+e.getMessage(),
> >                            Toast.LENGTH_LONG).show();
> > e.printStackTrace();
> >                        }
> >                        try {
> >                                displayFriendsList();
> >                        } catch (Exception e) {
> >                                Toast.makeText(getBaseContext(),
> >                            "Unable to display friend list:"+e.getMessage()
> > +e.getLocalizedMessage(),
> >                            Toast.LENGTH_LONG).show();
> > e.printStackTrace();
> >                        }
> >                        ConnectSocket socket = new ConnectSocket();
>
> >                        socket.sendData("ABCDEF");
> >                        String k = socket.recieveData();
> >                        Toast.makeText(getBaseContext(),
> >                    "Recieved from server:"+k,
> >                    Toast.LENGTH_LONG).show();
>
> >            }
>
> >                private void getFriendsList() {
>
> >                                        String line[] = new String[3];
> >                                        line[0]=
> > "Abdul#Raqeeb#23.44#34.44#4.45";
> >                                        line[1]=
> > "Abdul#Azeez#33.44#44.44#5.45";
> >                                        line[2]=
> > "Kiral#Azeez#53.44#454.44#6.45";
> >                                        for(int k=0;k<=2;k++){
> >                                        StringTokenizer tokens=new
> > StringTokenizer(line[k],"#");
> >                                    try{
> >                                        while(tokens.hasMoreTokens())
> >                                    {
> >                                        FName=tokens.nextToken();
> >                                        LName=tokens.nextToken();
> >                                        Latitude=tokens.nextToken();
> >                                        Longitude=tokens.nextToken();
> >                                        TimeStamp=tokens.nextToken();
> >                                        listOfFriends.add(new
> > MyFriend(FName,LName,Latitude,Longitude,TimeStamp));
> >                                    }
> >                                    }
> >                                    catch (Exception e){
> >                                        Toast.makeText(this,
> >                                                       "Some prob
> > here:"+e.getLocalizedMessage(),
>
> >  Toast.LENGTH_SHORT).show();
> >                                        e.printStackTrace();
> >                                    }
> >                                        }
>
> >                }
>
> > }
>
> > [/code]
>
> > The code related to the thread is
> > [code]
> > package com.getfriends;
>
> > import java.io.BufferedReader;
> > import java.io.DataOutputStream;
> > import java.io.IOException;
> > import java.io.InputStreamReader;
> > import java.net.InetAddress;
> > import java.net.Socket;
>
> > import android.util.Log;
>
> > public class ConnectSocket implements Runnable{
> >    /** Called when the activity is first created. */
>
> >    public String fromServer=null;
> >    public static BufferedReader inFromServer=null;
> >    public static Socket clientSocket=null;
> >    public InetAddress address =null;
> >    public static DataOutputStream outToServer=null;
>
> >   �...@override
> >    public void run(){
>
> >                try {
> >                        address = InetAddress.getByName("127.0.0.1");
> >                Log.d("TCP", "C: Connecting...");
> >                clientSocket = new Socket(address, 9999);
> >                outToServer = new
> > DataOutputStream(clientSocket.getOutputStream());
> >                        inFromServer = new BufferedReader(new
> > InputStreamReader(clientSocket.getInputStream()));
> >                } catch (Exception e) {
> >                        System.out.println("Not Connected to the internet");
> >                }
>
> >        }
>
> >    public void sendData(String s){
> >        try {
> >                if(s.equals(null)) s="hello";
> >                Log.d("TCP", "C: Sending...");
> >                        outToServer.writeBytes(s+'#');
> >                        outToServer.flush();
> >                } catch (IOException e) {
> >                        // TODO Auto-generated catch block
> >                        Log.d("TCP", "unable to send msg");
> >                        e.printStackTrace();
> >                }
>
> >    }
>
> >    public String recieveData(){
> >        try {
> >                        fromServer = inFromServer.readLine();
> >                        if(fromServer.equals(null)) fromServer="bad luck";
> >                } catch (IOException e) {
> >                        // TODO Auto-generated catch block
> >                        Log.d("TCP", "unable to send msg");
> >                        e.printStackTrace();
> >                }
> >                return fromServer;
>
> >    }
>
> > }
> > [/code]
>
> > Many thanks,
> > Raqeeb
>
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Android Developers" group.
> > To post to this group, send email to [email protected]
> > To unsubscribe from this group, send email to
> > [email protected]<android-developers%[email protected]>
> > For more options, visit this group at
> >http://groups.google.com/group/android-developers?hl=en
>
> > To unsubscribe, reply using "remove me" as the subject.

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

Reply via email to