Сервисное намерение - будет ли оно поймано ActivityMonitor? - PullRequest
0 голосов
/ 08 ноября 2011

Я хочу отслеживать, выполняется ли вызов startService (...) в Activity:

public void testShouldCallServiceOnSendButtonPress() throws Exception {
        assertNotNull(activity.pictureToSend);
        ActivityMonitor androidMock = help.mockIntent(1);
        TouchUtils.clickView(this, activity.sendButton);
        help.assertBehavior(androidMock);
    }

    public ActivityMonitor mockIntent(int numberOfExpectedIntentsSentToAndroid) {
        this.numberOfExpectedIntentsSentToAndroid = numberOfExpectedIntentsSentToAndroid;
        IntentFilter intentFilter = null;
        return androidMock = instrumentation.addMonitor(intentFilter, null, true);// catch all 
    }

выше. Я добавляю универсальный монитор (должен перехватывать и Activity, и Service, верно?!)

assertNotNull( this.startService(new Intent(this, MyService.class)) );

выше Я проверяю, что служба была успешно запущена, и это так.() не> = 1.

Есть идеи почему?

1 Ответ

1 голос
/ 05 июля 2012

Глядя на исходный код Android, кажется, что только Activity.startActivity перекрывается вызовами Instrumentation. startService не переопределяется в Activity, поэтому он использует реализацию по умолчанию из Context, поэтому он никогда не проходит инструментирование.

Так что нет, ActivityMonitor не будет перехватывать сервисные намерения.

...