Sie müssen einen Kontext übergeben, selbst die Klasse ContentResolver
benötigt einen gültigen Kontext, der instanziiert werden soll.
einfachste Weg ist, als Argument für die Methode:
public void test(Context context) throws Exception {
Uri uri = SuspiciousActivityTable.CONTENT_URI;
context.getContentResolver().update(uri, values2, where,new String[]{"Null"});
}
Und zu nennen: (unter der Annahme, dass die Klasse, die test
enthält instanziiert und Ihre Aktivitäten Name ist MyActivity
< - Ersetzen mit dem Activity
Namen Sie anrufen test()
von)
try{
sendInformationInstanceVariable.test (MyActivity.this);
}
catch (Exception e)
{
e.printStackTrace();
}
MyActivity.this
kann auf this
verkürzt werden, wenn Sie test()
aus einer anonymen inneren Klasse aufrufen.
Auch wenn Ihre Klasse wirklich keinen guten Grund hat instanziiert werden, betrachten test()
machen ein static
Methode, wie folgt aus:
public static void test(Context context) throws Exception {
Uri uri = SuspiciousActivityTable.CONTENT_URI;
context.getContentResolver().update(uri, values2, where,new String[]{"Null"});
}
Dann von Ihrem Activity
, rufen Sie diese Methode ohne ein zu benötigen Beispiel:
try{
sendInformation.test (MyActivity.this);
}
catch (Exception e)
{
e.printStackTrace();
}
Schließlich Exception
werfen ist eine schlechte Praxis, tun es nicht ohne guten Grund, und wenn Sie einen guten Grund haben, so genau wie möglich.
'public void CLASS', die keinen Sinn macht. Klassen können keinen Rückgabetyp haben. –
Okay, diese Klasse wird von einer anderen Klasse aufgerufen, die die Aktivität erweitert, also sollte ich diesen Kontext weitergeben, wie kann ich das tun? – user2033349
sehe meine Bearbeitung. Normalerweise übergibst du 'this' an' test() ' –