#java #android
#java #Android
Вопрос:
У меня есть приложение для Android с несколькими вызовами «Log.d» в коде, чтобы следить за событиями приложения. Чтобы включить или отключить отладочные сообщения, я вызываю журнал с
if (MyApp.debug) Log.d("Doing something");
Где MyApp.debug — это окончательное логическое значение, которое я изменяю перед компиляцией.
Теперь я хочу использовать некоторые классы из приложения в качестве библиотеки для другого приложения, поэтому я скопировал их в новый проект библиотеки. Проблема в том, что теперь в библиотеке у меня нет класса MyApp.
Как я могу сделать что-то подобное для управления из приложения, если библиотека должна печатать сообщения отладки или нет?
Заранее спасибо
Ответ №1:
Я бы предложил поместить переменную внутри вызываемого статического класса Log
, который вы могли бы затем во время выполнения проверить статическую логическую переменную, чтобы выяснить, должна ли она регистрироваться или нет.
Таким образом, у вас все еще есть удобство, но все это содержится внутри регистратора.
Например:
public class Log {
public static boolean mustLog = false;
// methods etc.
}
Затем в вашем приложении просто используйте if(Log.mustLog) ...
Надеюсь, это поможет.
Ответ №2:
Вы можете создать другой пользовательский класс в своей библиотеке
public Class LogPrefs
{
public static final boolean enabled = true;
}
и включайте и выключайте его по мере необходимости. Тогда просто
if (LogPrefs.enabled) Log.d("Doing something");
Я всегда удаляю сообщения отладки по ходу работы, поскольку они имеют тенденцию загромождать экран. Однако я сохраняю информацию и сообщения об ошибках; в конечном итоге они могут быть восстановлены и отправлены обратно после сбоя.