Observable pattern not notify in android -


i have implement observer/observable pattern in android application, when notify, receivers dont call.

this code:

the observer, class call rest service, if call fails because server off, or other problem, change rest server ip, increase int value observable , observable must call update override method, dont it:

    public class loginapicall extends apicallbase<object> implements observer {          private string team;         private string password;         private string deviceid;          private loginintents loginintents;          public loginapicall(context context, string team, string password, string deviceid, apiresponselistener listener) {             super(context, listener);             this.team = team;             this.password = password;             this.deviceid = deviceid;             loginintents = loginintents.getinstance();             loginintents.addobserver(this);         }          @override         protected void dowork() {              logindata login = new logindata(team, password, deviceid);              gson gson = new gson();             string value = gson.tojson(login);              try {                 bytearrayentity entity = new bytearrayentity(value.getbytes("utf-8"));                  api.post(context, "teamlogin", entity, new jsonhttpresponsehandler() {                     @override                     public void onsuccess(jsonobject jsonobject) {                         apisuccess(jsonobject);                     }                      @override                     public void onfailure(throwable throwable, jsonobject jsonobject) {                         throwable.printstacktrace();                         apierror(new apiexception());                     }                      @override                     public void onfailure(throwable throwable, string content) {                         if (throwable.getcause() instanceof connecttimeoutexception) {                             system.out.println("connection timeout !");                         }                         loginintents.increaseintents();                         throwable.printstacktrace();                         apierror(new serverexception());                     }                 });             } catch (unsupportedencodingexception e) {                 e.printstacktrace();             }          }          @override         public void update(observable observable, object data) {             execute();         } } 

and observable, when increase intents attribute 0 1, notify observers , should something:

public class loginintents extends observable {      private static volatile loginintents instance = null;     private int intents = 0;      private loginintents() {     }      public static loginintents getinstance() {         if (instance == null) {             instance = new loginintents();         }         return instance;     }      public int getintents() {         return instance.intents;     }      public void increaseintents() {         instance.intents++;         if (intents == 1) {             notifyobservers();             setchanged();         }     } } 

whats wrong? notifyobservers method called when debug , setchanged too, dont enter in update method of observer..

shouldn't setchanged() called before notifyobservers()?


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

inno setup - TLabel or TNewStaticText - change .Font.Style on Focus like Cursor changes with .Cursor -