RuiQi
RuiQi

Reputation: 488

Improve speed of android app

In my android program, I have 3 functions that will be continuously repeated until the user exits the app. Currently, it is able to update a value(position) every second.

I was wondering if having lots of if else condition in one of the function will slow down the performance of my app i.e. it might take way longer than a second for the updates to kick in.

Note that 2 of the if else function will execute only once. All the if-else function have very little code in it. Below is the code

public void positionUpdated(Coordinate userPosition, int accuracy) {

    // GETS EXECUTED ONCE //
    if(nameList.size() == 0) {nameList = indoorsFragment.getZones();}
    if(end == null) {
        for(int i=0 ; i < nameList.size() ; i++) if(nameList.get(i).equals(name)) end = nameList.get(i).getZonePoints().get(0);
    }
    // GETS EXECUTED ONCE //

    if(Math.abs(userPosition.x - end.x) >500) {Toast.makeText(this,"WALK " + Math.abs(end.x - userPosition.x)/1000 + " Meters" , Toast.LENGTH_SHORT).show();return;}

    if(turn) {
        if ((userPosition.y - end.y) < 0) {Toast.makeText(this, "STOP AND TURN RIGHT", Toast.LENGTH_LONG).show();turn=false;return;}
        if ((userPosition.y - end.y) > 0) {Toast.makeText(this, "STOP AND TURN LEFT" , Toast.LENGTH_LONG).show();turn=false;return;}
    }

    if((Math.abs(userPosition.y - end.y) < 500)) Toast.makeText(this, "WALK", Toast.LENGTH_LONG).show();
}

Hope to receive some feedback regarding this , thanks Haziq

Upvotes: 0

Views: 78

Answers (1)

Abdallah Alaraby
Abdallah Alaraby

Reputation: 2249

The number of statements doesn't really matter, in fact they're executed in fractions of nanoseconds. what matters is if you have many nested loops or recursions.

If you don't want much work to be done in the foreground thread, use an AsyncTask or Runnable then update the UI in the main thread.

Upvotes: 1

Related Questions