Peter
Peter

Reputation: 11890

Can there be two instances of the same activity within an app?

I noticed that one of my colleagues is declaring all the member variables of an activity as static. His point is that there will never be two instances of the activity, and static member variables are more efficient than non-static. Of course, when the activity is created, he will initialize all the members variables as one would do.

I feel this is wrong. I don't think the gain is even justifiable. But I wanted to run this by you guys. Whether or not it is a good programming practice is probably beyond the scope of stackoverflow's mandate. So my specific question is if using static member variables for an activity ever break anything (besides coder's error of not initializing them properly in onCreate).

Thank you in advance for your help.

Upvotes: 2

Views: 1060

Answers (2)

eimmer
eimmer

Reputation: 319

Yes, you can have multiple instances on the same activity and you often want to.

For example, if I have 3 views that simply compose of a ListView. You can create 3 activities that had the same code duplicated and small changes, or one activity that handles the loading of the layout and getting a reference to the ListView and extend it to add functionality.

You can limit an activity to one instance by declaring it that way in the manifest file.

Upvotes: 1

Cristian Holdunu
Cristian Holdunu

Reputation: 1918

Yes, android can create 2 instances of the same activity, so your friend is wrong.

To have only one instance, you must declare the following in manifest

    <activity android:name=".YourActivity"
          android:launchMode="singleTask"
          android:label="@string/app_name" />

Upvotes: 1

Related Questions