comment utiliser getContentResolver dans une classe sans activité?
ma classe ressemble à ceci:
public class sendInformation{
public void test() throws Exception {
Uri uri = SuspiciousActivityTable.CONTENT_URI;
getContentResolver().update(uri, values2, where,new String[]{"Null"});
}
}
}
mais il dire getContentResolver()
n'existe pas, je sais que j'ai besoin d'un Contexte ou d'une Activité à faire ce travail, mais comment faire le bon Contexte ici?
source d'informationauteur user2033349 | 2013-02-25
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin de faire passer d'un Contexte, même le
ContentResolver
les besoins de la classe un contexte valide pour être instancié.Façon la plus simple est comme argument de la méthode:
Et l'appel de: (en supposant que la classe qui contient
test
est instancié et votre Activité nom de l'MyActivity
<- Remplacer leActivity
nom que vous appeleztest()
de)MyActivity.this
peut être raccourcie à justethis
si vous n'êtes pas à l'appel detest()
à l'intérieur d'un anonyme intérieur de la classe.Aussi, si votre classe n'est pas vraiment une bonne raison d'être instancié, envisager de faire
test()
unstatic
méthode, comme ceci:Puis, à partir de votre
Activity
vous appelez cette méthode sans avoir besoin d'un exemple:Enfin, jetant
Exception
est une mauvaise pratique, ne pas le faire sans une bonne raison et si vous avez une bonne raison, être aussi précis que possible.Quelque part entre l'emplacement de votre application démarre, (et vous avez accès à
getApplicationContext()
) et de l'endroit d'où vous appeleztest()
vous aurez besoin de passer dans unContext
à votresendInformation
classe. Je regarde ce que le cycle de vie de votre sendInformation de classe a et de comparer les différentes Android composants (Application, Activité, Fragment) et utiliser le contexte approprié à partir de là:Application:
getApplicationContext()
Activité: c' (comme l'Activité s'étend au Contexte)
getActivity()