That looks correct, your issue may lie somewhere else.

On Thu, Sep 8, 2011 at 9:52 AM, Rafael Maas <rafaelm...@gmail.com> wrote:
> Try using a async thread  to run the "update socket method"  and
> update your interface using
>
> http://developer.android.com/reference/android/app/Activity.html#runOnUiThread(java.lang.Runnable)
>
> 2011/9/8 giangiammy <giangia...@gmail.com>:
>> Hi all,
>>
>> I have an activity updating the GUI with data coming from a socket.
>>
>> In my activity I implemented an Handler:
>>
>>     int REFRESH = 1;
>>     final Handler hRefresh = new Handler(){
>>     @Override
>>     public void handleMessage(Message msg) {
>>         Integer i1;
>>         Integer i2;
>>         i1 = msg.arg1;
>>         i2 = msg.arg2;
>>
>>         ... update a widget (in my example a button background)
>>
>>     }
>>     };
>>
>>
>> Then I start a thread polling the socket for new data and I define a Map
>> with some function, which are called depending on the incoming data:
>>
>>            allServerActions.put(
>>                         ami.serverId,
>>                         new IntIntFunction() {
>>                             public int function(int i1, int i2) {
>>
>>                                 Message msg = Message.obtain(hRefresh, 1,
>> i1, i2);
>>                                 hRefresh.sendMessage(msg);
>>
>>                                 return 0;
>>                             } // end function
>>                         } // end new
>>                     ); // end put
>>
>> Where IntIntFunction is:
>>
>> interface IntIntFunction {
>>       int function(int i1, int i2);
>> }
>>
>> The socket thread works correctly, but after 1/2 minutes the main activity
>> dies,
>> with the followin logging:
>>
>> I/ActivityManager(  555): Process my.test.testxml1 (pid 650) has died.
>> D/Zygote  (  529): Process 650 terminated by signal (11)
>> I/WindowManager(  555): WIN DEATH: Window{522dbc30
>> my.test.testxml1/my.test.testxml1.Testxml1 paused=false}
>> W/UsageStats(  555): Unexpected resume of com.android.launcher while already
>> resumed in my.test.testxml1
>> I/asset   (  555): Creating Asset 0x10279a90 #5
>> W/InputManagerService(  555): Got RemoteException sending setActive(false)
>> notification to pid 650 uid 10020
>>
>> I suppose I'm doing something wrong in the interazione between the 2
>> threads: from the documentation
>> I read I understood that the correct way is to use Handlers for such a task.
>>
>> Am I correct? do you see any error in my implementation?
>> Is there any other way to implement an activity whose interface is updated
>> by data coming from a socket?
>>
>> thanks
>> giammy
>>
>> --
>> 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
>
> --
> 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



-- 
~ Jeremiah:9:23-24
Android 2D MMORPG: http://solrpg.com/, http://www.youtube.com/user/revoltingx

-- 
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