Intereting Posts
ScrollBy не работает должным образом во вложенном recycliewiew Что такое повышение в Android L? Как отображать Контакты в алфавитном порядке в Listview Альтернатива VMRuntime.getRuntime (). SetMinimumHeapSize в Gingerbread Как изменить цвет трека SwitchCompat Android, как получить высоту в LocationManager. Я все равно получаю нуль Настройка EditText imeOptions на actionNext не влияет на использование цифр Неполная документация для Android для метода Environment.getExternalStorageDirectory () Экран мерцает и изменяется при запуске видеозаписи Ошибка получения вашего сообщения была недействительной при получении ключа API для API Карт Google v2 Как настроить Android sdk из командной строки на безголовом сервере? Loop для загрузки списка изображений по одному Как игнорировать нажатие клавиши «Поиск» в диалоговом окне «Диалог» Существуют ли способы встраивания браузера в Android-приложение? Использование существующего приложения Wicket для Android-приложения

Как начать работу со службы?

Можно ли запустить Activity из службы? Если да, как мы можем достичь этого?

android.app.Service является потомком android.app.Context поэтому вы можете напрямую использовать startActivity . Однако, поскольку вы запускаете это за пределами любой активности, вам нужно установить флаг FLAG_ACTIVITY_NEW_TASK в намерении.

Например:

 Intent i = new Intent(); i.setClass(this, MyActivity.class); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(i); 

Где this ваш сервис.

Даже если структура позволяет вам запускать Activity из службы, это, вероятно, не является правильным решением. Причина в том, что задача Service может быть или не быть в центре внимания пользователя в момент, когда Служба желает взаимодействовать с пользователем. Прерывание того, что делает пользователь в настоящее время, считается плохой формой дизайна, особенно из-за того, что предполагается использовать в фоновом режиме.

Поэтому вам следует рассмотреть возможность использования службы уведомлений с уведомлением, в которой PendingIntent запускает требуемое действие, когда пользователь решает, что пора исследовать. Думайте об этом как о задержанном удовлетворении.

Это, безусловно, решит вашу проблему

 Intent intent = new Intent(); intent.setAction(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ComponentName cn = new ComponentName(this, TaxiPlexer.class); intent.setComponent(cn); startActivity(intent); 

У меня возникла проблема с запуском службы из службы, это было связано с отсутствием флаг намерения FLAG_ACTIVITY_NEW_TASK.