2
votes

quelle sera la différence si nous commençons l'activité en utilisant le contexte d'application au lieu du contexte d'activité?

Intent intent = new Intent(activityContext,SomeActivity.class);
startActivity(intent);
instead of activityContext can we use applicationContext, if yes, what will be the difference in newly created activity.I know the difference between activity context and application context, but I want to know how it will effect activity if we start it using an application context.

2 commentaires

Double possible de Différence entre le contexte d'activité et le contexte d'application


@Ajay Chauhan J'ai écrit un exemple de la différence entre les deux contextes lorsque vous démarrez une activité.


3 Réponses :


0
votes

Aucune différence dans l'activité nouvellement créée car ils sont tous les deux des instances de contexte, mais peuvent créer des comportements de pile arrière non standard dans votre application et l'instance d'application est également liée au cycle de vie de l'application, tandis que l'instance d'activité est liée à le cycle de vie d'une activité. Mais en général, utilisez le contexte d'activité à moins que vous n'ayez une bonne raison de ne pas le faire.


2 commentaires

s'il n'y a pas de différence, alors pourquoi utilisons-nous toujours le contexte d'activité au lieu du contexte d'application pour démarrer une activité.


Une application PEUT démarrer une activité à partir d'ici, mais elle nécessite la création d'une nouvelle tâche. Cela peut convenir à des cas d'utilisation spécifiques, mais peut créer des comportements de back-stack non standard dans votre application et n'est généralement pas recommandé ou considéré comme une bonne pratique.



1
votes

Maintenant, ce qui confond, c'est la déclaration de différents contextes et leur utilisation spécifique. Pour simplifier les choses, vous devez compter deux types de contexte disponibles dans le framework Android.

Contexte de l'application Contexte de l'activité Le contexte de l'application est attaché au cycle de vie de l'application et sera toujours le même tout au long de la vie de l'application. Donc, si vous utilisez Toast, vous pouvez utiliser le contexte d'application ou même le contexte d'activité (les deux) car un toast peut être levé de n'importe où dans votre application et n'est pas attaché à une fenêtre.

Le contexte d'activité est associé au cycle de vie de l'activité et peut être détruit si onDestroy () de l'activité est déclenché. Si vous souhaitez lancer une nouvelle activité, vous devez utiliser le contexte de l'activité dans son intention afin que la nouvelle activité de lancement soit connectée à l'activité en cours (en termes de pile d'activités). Cependant, vous pouvez également utiliser le contexte de l'application pour lancer une nouvelle activité, mais vous devez ensuite définir l'indicateur Intent.FLAG_ACTIVITY_NEW_TASK afin de le traiter comme une nouvelle tâche.

En ce qui concerne maintenant vos cas:

activitycontext: bien que cela fasse référence à votre propre classe qui étend la classe Activity mais la classe de base (Activity) étend également la classe Context, donc elle peut être utilisée pour offrir un contexte d'activité.

getApplication () fait référence à l'objet Application mais la classe Application étend la classe Context, elle peut donc être utilisée pour offrir un contexte d'application.

getApplicationContext () offre un contexte d'application.

getBaseContext () offre un contexte d'activité.

Choisissez le contexte d'activité lorsque vous utilisez Intent et pour toast, vous pouvez utiliser n'importe quel contexte.


0 commentaires

0
votes

Le contexte d'application et le contexte d'activité sont des instances de la classe Context . Le contexte de l'application fait référence au cycle de vie de l'application et le contexte de l'activité au cycle de vie de l'activité. Ainsi, pour obtenir des informations sur l'activité actuelle, vous devrez peut-être utiliser le contexte d'activité au lieu du contexte d'application.


1 commentaires

qu'est-ce qui pourrait mal tourner si nous commençons l'activité en utilisant le contexte d'application au lieu du contexte d'activité