I have an activity contains too many UI controls. I want to execute a method after make the activity visible.
An example i tried:
public class Main extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MyMethod();
}
private void MyMethod(){
Toast.makeText(this, "Hi UI is fully loaded", Toast.LENGTH_SHORT).show();
}
}
But in the above sample, the message shows before the activity is visible.
Is there a way to find out, if the activity is fully visible ?
there is no real callback, which is called, exactly at that time the Activity is Visible. But as you can see in the attached picture, the method
onResume()
is just called when Activity should be visible.Also have a look at the Activity lifecycle and the documentation HERE
So your method should be called like this:
Move the code on to onAttachedToWindow()
Move your code to
onResume
Check the activity lifecycle
http://developer.android.com/reference/android/app/Activity.html
Called after onRestoreInstanceState(Bundle), onRestart(), or onPause(), for your activity to start interacting with the user. This is a good place to begin animations, open exclusive-access devices (such as the camera), etc.
Keep in mind that onResume is not the best indicator that your activity is visible to the user; a system window such as the keyguard may be in front. Use onWindowFocusChanged(boolean) to know for certain that your activity is visible to the user (for example, to resume a game).
Derived classes must call through to the super class's implementation of this method. If they do not, an exception will be thrown.
Call
MyMethod()
inonResume()
of ActivityAs per documentation
onResume()
is called when the activity will start interacting with the user. At this point your activity is at the top of the activity stack, with user input going to it.Move the code on to
onResume
.System calls this method every time your activity comes into the foreground, including when it's created for the first time. Read details for Pausing and Resuming an Activity
Read more at Android activity life cycle - what are all these methods for?