java - Sending a simple message from Service to Activity -


i trying find way send integer value service mainactivity, yet can't figure out tutorials on internet. using handler receive messages i'm sending thread in service.

my code thread in service:

private class servicethread extends thread {     @override     public void run() {         super.run();         try{             log.i("service", "task performed");              int x = 0;             (int = 0; < 20; i++){                 x += (random.nextint(20) + 20);             }             theinteger = x/20;             message msg = message.obtain();             msg.what = my_rnd_int;             msg.arg1 = theinteger;             handler.sendmessage(msg);         }catch(exception e){             e.getmessage();         }     } } 

my code attempting receive message:

public messenger mmessenger = new messenger(new incominghandler());   class incominghandler extends handler {     @override     public void handlemessage(message msg) {         switch (msg.what) {             case simpleservice.my_rnd_int:                 rndint.settext(msg.arg1);                 break;             default:                 super.handlemessage(msg);         }     } } 

assuming activity , service in same package.

service side

// supposing value integer declared somewhere as: int myinteger; private void sendmessage() {   // string "my-integer" used filer intent   intent intent = new intent("my-integer");   // adding data   intent.putextra("message", myinteger);   localbroadcastmanager.getinstance(this).sendbroadcast(intent); } 

activity side

    @override     public void onresume() {       super.onresume();       // registers mmessagereceiver receive messages.       localbroadcastmanager.getinstance(this)                            .registerreceiver(mmessagereceiver,                                              new intentfilter("my-integer"));     }      // handling received intents "my-integer" event      private broadcastreceiver mmessagereceiver = new broadcastreceiver() {       @override       public void onreceive(context context, intent intent) {         // extract data included in intent         int yourinteger = intent.getintextra("message",-1/*default value*/);       }     };      @override     protected void onpause() {       // unregister since activity not visible       localbroadcastmanager.getinstance(this)                            .unregisterreceiver(mmessagereceiver);       super.onpause();     } 

Comments

Popular posts from this blog

javascript - Bootstrap Popover: iOS Safari strange behaviour -

Magento/PHP - Get phones on all members in a customer group -

session - Logging Out Using PHP -