Snake
Snake

Reputation: 14648

Pass value through intent or static variable?

I am wondering about the best way to design / program this:

If I have a Boolean value (let's say whether the user has extra power or not) and I need to pass it from Activity A to B to C. Should I add it to an intent from each activity to another OR should I just store it in a static variable and access it every time?

Upvotes: 3

Views: 802

Answers (3)

root-stack
root-stack

Reputation: 81

Passing data through Intent If you use that only in that activity that's fine but When u need to pass to other layer like viewmodel that will make your operation's speed slower

Upvotes: 0

Marky0414
Marky0414

Reputation: 73

Android Intents have a putExtra method that you can use to pass variables from one activity to another.

public class ActivityA extends Activity {

    ...

    private void startActivityB() {
        Intent intent = new Intent(this, ActivityB.class);
        intent.putExtra("HAS EXTRA POWER", false);
        startActivity(intent);
    }
}

public class ActivityB exntends Activity {

    Bundle bundle;

    private void hasExtraPower() {
        bundle = getIntent().getExtras();

        if(!bundle.getBoolean("HAS EXTRA POWER")
            // do something
        else
            // do something else
    }
}

Upvotes: 1

hepizoj
hepizoj

Reputation: 263

Its is safer to pass it in the intent. sometimes android kills apps without warning when it needs memory and your static values will not be retained on the other hand intent extras are kept. if you want to push it a little further, use shared preference. its designed using Map data struct so speed will not be a problem.

Upvotes: 3

Related Questions