android - updating textview in an activity from a service -


below example updating textiviews in activity service via broadcast receiver want send calculated bandwidth usage service text views in other activity, have tried approach not working (it shows package names in text fields)

broadcast service (transmitter)

    public class broadcastservice  extends service {     private static final string tag = "broadcastservice";     public static final string broadcast_action = "com.websmithing.broadcasttest.displayevent";     private final handler handler = new handler();     intent intent;     int counter = 0;      @override     public void oncreate() {         super.oncreate();          intent = new intent(broadcast_action);       }      @override     public void onstart(intent intent, int startid) {         handler.removecallbacks(sendupdatestoui);         handler.postdelayed(sendupdatestoui, 1000); // 1 second      }      private runnable sendupdatestoui = new runnable() {         public void run() {             displaylogginginfo();                        handler.postdelayed(this, 10000); // 10 seconds         }     };          private void displaylogginginfo() {         log.d(tag, "entered displaylogginginfo");          intent.putextra("time", new date().tolocalestring());         intent.putextra("counter", string.valueof(++counter));         sendbroadcast(intent);     }      @override     public ibinder onbind(intent intent) {         return null;     }      @override     public void ondestroy() {                handler.removecallbacks(sendupdatestoui);                super.ondestroy();     }        } 

broadcast service (receiver)

public class broadcasttest extends activity {     private static final string tag = "broadcasttest";     private intent intent;      @override     public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.main);          intent = new intent(this, broadcastservice.class);     }      private broadcastreceiver broadcastreceiver = new broadcastreceiver() {         @override         public void onreceive(context context, intent intent) {             updateui(intent);                }     };          @override     public void onresume() {         super.onresume();                startservice(intent);         registerreceiver(broadcastreceiver, new intentfilter(broadcastservice.broadcast_action));     }      @override     public void onpause() {         super.onpause();         unregisterreceiver(broadcastreceiver);         stopservice(intent);             }        public void ohh(view view) {          intent intent = new intent(this, broadcastservice.class);         startactivity(intent);     }      private void updateui(intent intent) {         string counter = intent.getstringextra("time");          string time = intent.getstringextra("counter");         log.d(tag, counter);         log.d(tag, time);          textview txtdatetime = (textview) findviewbyid(r.id.txtdatetime);            textview txtcounter = (textview) findviewbyid(r.id.txtcounter);         txtdatetime.settext(time);         txtcounter.settext(counter);     } } 

bandwidth usage calculator

public class main extends activity {      private handler mhandler = new handler();     private long mstartrx = 0;     private long mstarttx = 0;      @override     public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.main);         mstartrx = trafficstats.gettotalrxbytes();         mstarttx = trafficstats.gettotaltxbytes();         if (mstartrx == trafficstats.unsupported || mstarttx == trafficstats.unsupported) {             alertdialog.builder alert = new alertdialog.builder(this);             alert.settitle("uh oh!");             alert.setmessage("your device not support traffic stat monitoring.");             alert.show();         } else {             mhandler.postdelayed(mrunnable, 1000);         }     }      private final runnable mrunnable = new runnable() {         public void run() {             textview rx = (textview)findviewbyid(r.id.rx);             textview tx = (textview)findviewbyid(r.id.tx);             long rxbytes = trafficstats.gettotalrxbytes()- mstartrx;             rx.settext(long.tostring(rxbytes));             long txbytes = trafficstats.gettotaltxbytes()- mstarttx;             tx.settext(long.tostring(txbytes));             mhandler.postdelayed(mrunnable, 1000);         }      }; } 

my approach

public class broadcastservice  extends service {     private static final string tag = "broadcastservice";     public static final string broadcast_action = "com.websmithing.broadcasttest.displayevent";     private final handler handler = new handler();     intent intent;     int counter = 0;     private handler mhandler = new handler();     private long mstartrx = 0;     private long mstarttx = 0;      @override     public void oncreate() {         super.oncreate();         intent = new intent(broadcast_action);           mstartrx = trafficstats.gettotalrxbytes();         mstarttx = trafficstats.gettotaltxbytes();         if (mstartrx == trafficstats.unsupported || mstarttx == trafficstats.unsupported) {             alertdialog.builder alert = new alertdialog.builder(this);             alert.settitle("uh oh!");             alert.setmessage("your device not support traffic stat monitoring.");             alert.show();         } else {             mhandler.postdelayed(mrunnable, 1000);         }      }     private final runnable mrunnable = new runnable() {         public void run() {         //  textview rx = (textview)findviewbyid(r.id.rx);         //  textview tx = (textview)findviewbyid(r.id.tx);             long rxbytes = trafficstats.gettotalrxbytes()- mstartrx;       //    rx.settext(long.tostring(rxbytes));             long txbytes = trafficstats.gettotaltxbytes()- mstarttx;        //   tx.settext(long.tostring(txbytes));             mhandler.postdelayed(mrunnable, 1000);         }      };       @override     public void onstart(intent intent, int startid) {         handler.removecallbacks(sendupdatestoui);         handler.postdelayed(sendupdatestoui, 1000); // 1 second      }      private runnable sendupdatestoui = new runnable() {         public void run() {             displaylogginginfo();                        handler.postdelayed(this, 10000); // 10 seconds         }     };          private void displaylogginginfo() {         log.d(tag, "entered displaylogginginfo");          intent.putextra("time", new date().tolocalestring());         intent.putextra("counter", string.valueof(++counter));         sendbroadcast(intent);     }      @override     public ibinder onbind(intent intent) {         return null;     }      @override     public void ondestroy() {                handler.removecallbacks(sendupdatestoui);                super.ondestroy();     }        } 

i having problem in transmitting value of "rxbytes" , "txbytes" in line intent.putextra("counter", string.valueof(++counter));

their values not being used highlighted yellow


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -