Какой контекст следует использовать Application или Activity для Intent в startService ()? - PullRequest
0 голосов
/ 30 апреля 2020

Мне интересно, каковы последствия использования действия или контекста приложения для Intent (). При использовании контекста активности продолжительность службы привязана к жизненному циклу активности?

    start.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startService(new Intent(MainActivity.this,MyService.class));
            startService(new Intent(getApplicationContext(),MyService.class));
        }
    });

1 Ответ

0 голосов
/ 06 мая 2020

В приведенном вами примере Context, используемый при вызове

new Intent(Context, Class)

, не имеет значения на 100%.

Параметр Context в этом Intent Конструктор используется ТОЛЬКО для одной цели и одной цели, то есть для получения имени пакета вашего приложения. Вот и все. Таким образом, вы можете использовать любой Context, который вы хотите из вашего приложения. Это абсолютно не влияет на жизненный цикл или срок службы чего-либо, и не связывает что-либо с Context.


В качестве альтернативы, вы также можете создать Intent следующим образом:

Intent intent = new Intent();
intent.setClassName("my.package.name", "my.class.name");

Результаты этого идентичны приведенному вами примеру.

...