Android Studio:
Не размещайте классы контекста Android в статических полях; это утечка памяти (а также нарушает работу Instant Run)
Итак, 2 вопроса:
# 1 Как вызвать a startService
из статического метода без статической переменной для контекста?
# 2 Как отправить localBroadcast из статического метода (такого же)?
Примеры:
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);
}
}
или же
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);
Как правильно это сделать без использования mContext
?
ПРИМЕЧАНИЕ. Я думаю, что мой главный вопрос может заключаться в том, как передать контекст классу, из которого живет вызывающий метод.