Android Studio:
Platzieren Sie Android-Kontextklassen nicht in statischen Feldern. Dies ist ein Speicherverlust (und bricht auch Instant Run)
Also 2 Fragen:
# 1 Wie ruft man startService
eine statische Methode ohne statische Variable für den Kontext auf?
# 2 Wie senden Sie einen localBroadcast von einer statischen Methode (gleich)?
Beispiele:
public static void log(int iLogLevel, String sRequest, String sData) {
if(iLogLevel > 0) {
Intent intent = new Intent(mContext, LogService.class);
intent.putExtra("UPDATE_MAIN_ACTIVITY_VIEW", "UPDATE_MAIN_ACTIVITY_VIEW");
mContext.startService(intent);
}
}
oder
Intent intent = new Intent(MAIN_ACTIVITY_RECEIVER_INTENT);
intent.putExtra(MAIN_ACTIVITY_REQUEST_FOR_UPDATE, sRequest));
intent.putExtra(MAIN_ACTIVITY_DATA_FOR_VIEW, sData);
intent.putExtra(MAIN_ACTIVITY_LOG_LEVEL, iLogLevel);
LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent);
Was wäre der richtige Weg, dies ohne zu tun mContext
?
HINWEIS: Ich denke, meine Hauptfrage könnte sein, wie der Kontext an eine Klasse übergeben werden kann, aus der die aufrufende Methode stammt.