I'm new to java and android so I am asking these kind of questions here to understand how it should work.
I have 2 Activities in my app viz Welcome_Activity.java
and Content_Activity.java
The First Activity work smoothly but the problem comes when the Content_Activity(Second Activity)
is called from Welcome_Activity(First Activity)
In the onCreate
of Second Activity
, I think the contents which are too many cause the Activity to load too slow.
How to solve this issue?
Example :
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_Puzzle_game);
q1_tv = (TextView) findViewById(R.id.q1_tv);
q2_tv = (TextView) findViewById(R.id.q2_tv);
q3_tv = (TextView) findViewById(R.id.q3_tv);
q4_tv = (TextView) findViewById(R.id.q4_tv);
q5_tv = (TextView) findViewById(R.id.q5_tv);
q6_tv = (TextView) findViewById(R.id.q6_tv);
q7_tv = (TextView) findViewById(R.id.q7_tv);
q8_tv = (TextView) findViewById(R.id.q8_tv);
q9_tv = (TextView) findViewById(R.id.q9_tv);
q10_tv = (TextView) findViewById(R.id.q10_tv);
bt1 = (Button) findViewById(R.id.bt1);
bt2 = (Button) findViewById(R.id.bt2);
bt3 = (Button) findViewById(R.id.bt3);
bt4 = (Button) findViewById(R.id.bt4);
bt5 = (Button) findViewById(R.id.bt5);
bt6 = (Button) findViewById(R.id.bt6);
bt7 = (Button) findViewById(R.id.bt7);
bt8 = (Button) findViewById(R.id.bt8);
bt9 = (Button) findViewById(R.id.bt9);
bt10 = (Button) findViewById(R.id.bt10);
SP = getSharedPreferences("saved_data", MODE_PRIVATE);
solved = SP.getInt("solved", 0);
// LoadLevel & ResumeGame is just a method to get data from another class that have array Strings to fill the textviews and buttons
if (solved > 0) {
ResumeGame(null);
}
else {
LoadLevel(null);
}
}
I assume you are fetching data in ResumeGame
& LoadGame
methods either from web services or from local app storage; if so try to do fetching thing in other than main thread (UI thread) and as soon as you get the data try to pass this data on UI thread. The best way to do it for you (beginner) use AsyncTask, usable callbacks in AsyncTask
could be:
doInBackground
: here write your code to get the dataonPostExecute
: Here you can fill your UI views like button label, text of TextView
I hope this will help you in order to improve performance.