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