Почему Logcat не выводит сообщение, когда startCommand () вызывается системой Android?

Я написал простой код для проверки использования сервиса.

@Override
public int onStartCommand(Intent intent, int flags, int startId) {

    Log.d("msg","Service Started");

    if(intent == null)
    Log.w("msg","Service Intent NULL");

    g = (GlobalVar) getApplicationContext();

    try {
        Thread thread = new Thread(new Job());
        thread.start();

    } catch (Exception ex) {
        Log.e("msg", ex.getMessage());
    }

    return START_STICKY;
}

В моей активности две кнопки. Одна кнопка запускает службу с помощью метода startService (Intent intent), а другая останавливает ее с помощью метода stopService (Intent intent). 1. Я нажал кнопку startButton, и в Logcat распечатывается сообщение Служба запущена. На этот раз намерение не будет нулевым. 2. Теперь я перехожу в Настройки> Приложения> Запущенные службы эмулятора, нахожу свою службу и останавливаю ее. Сообщение Служба остановлена ​​ печатается в Logcat, который я написал в методе службы onDestroy ().

Вот часть, которую я не понимаю.

Система Android перезапускает службу через несколько секунд, и на этот раз сообщение Служба запущена не печатается. В документации указано, что намерение будет нулевым. НО сообщение Service Intent NULL также не печатается.

Как я узнаю, что система Android перезапускает службу?

Я напечатал несколько сообщений в теме, которую запускает моя служба. Эти сообщения начинают автоматически печататься в logcat через несколько секунд после остановки службы в настройках эмулятора.

Есть идеи, почему эти сообщения LogCat НЕ печатаются?


person Raman Ghai    schedule 14.04.2013    source источник


Ответы (1)


Что я думаю, что вы должны иметь некоторое общее представление об этих тонких материалах, я расскажу ниже ...

Log.e: Это когда случается что-то плохое. Используйте этот тег в таких местах, как внутри отлова. Вы знаете, что произошла ошибка, и поэтому вы регистрируете ошибку.

Log.w: используйте это, когда подозреваете, что происходит что-то темное. Возможно, вы не полностью находитесь в режиме ошибки, но, возможно, вы оправились от какого-то неожиданного поведения. По сути, используйте это для регистрации того, чего вы не ожидали, но это не обязательно ошибка. Что-то вроде «эй, это случилось, и это странно, мы должны это изучить».

Log.i: используйте для публикации полезной информации в журнале. Например: что вы успешно подключились к серверу. В основном используйте его, чтобы сообщать об успехах.

Log.d: используйте это в целях отладки. Если вы хотите распечатать кучу сообщений, чтобы вы могли регистрировать точный поток вашей программы, используйте это. Если вы хотите вести журнал значений переменных, используйте это.

Log.v: используйте это, если хотите сойти с ума со своим логированием. Если по какой-то причине вы решили регистрировать каждую мелочь в определенной части вашего приложения, используйте тег Log.v. и ссылайтесь на это также здесь

я уверен, что это поможет тебе ... Спасибо ...

person Nandu    schedule 16.04.2013
comment
Это не то, что я искал, но все же это ценная информация. Спасибо - person Raman Ghai; 16.04.2013