问题描述:

 @Override

public void onClick(View view) {

// Launching News Feed Screen

Intent i = new Intent(getApplicationContext(), Profile.class);

startActivity(i);

}

});

what is the difference of using this code and what difference does it do on the program compared to this doe

Intent i = new Intent(CurrentActivityName.this, NextActivityName.class);

i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

startActivity(i);

网友答案:

First one uses getApplicationContext() to launch the intent. Application context is attached to the application's life-cycle and will always be same throughout the life of application. So if you are using Toast, you can use application context or even activity context (both) because a toast can be raised from anywhere with in your application and is not attached to a window.

Second one uses the Activity context. Activity context is attached to the Activity's life-cycle and can be destroyed if the activity's onDestroy is raised. If you want to launch a new activity, you must need to use activity's context in its Intent so that the new launching activity is connected to the current activity (in terms of activity stack).

So, Whenever you need to manipulate Views then go for Activity-Context, else Application-Context would be enough.

Source: this answer at difference and when to use getApplication(), getApplicationContext(), getBaseContext() and someClass.this question.

Also, reading some of above links would help:

Android - what's the difference between the various methods to get a Context?

getApplicationContext(), getBaseContext(), getApplication(), getParent()

相关阅读:
Top