Android Studio:
Nie umieszczaj klas kontekstu systemu Android w polach statycznych; to jest wyciek pamięci (a także przerywa Instant Run)
A więc 2 pytania:
# 1 Jak wywołać a startService
z metody statycznej bez zmiennej statycznej dla kontekstu?
# 2 Jak wysłać transmisję lokalną metodą statyczną (taką samą)?
Przykłady:
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);
}
}
lub
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);
Jaki byłby właściwy sposób na zrobienie tego bez używania mContext
?
UWAGA: Myślę, że moim głównym pytaniem może być przekazanie kontekstu do klasy, z której pochodzi metoda wywołująca.