Android:
public class LocationService extends Service {
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
startActivity(new Intent(this, activity.class));
}
}
Я запустил этот сервис с Activity
В Activity
случае удовлетворяет условию запуска
startService(new Intent(WozzonActivity.this, LocationService.class));
из моего LocationService
упомянутого выше не удалось запустить Activity
, как я могу получить контекст текущей работы Activity
в классе обслуживания?
У меня была такая же проблема, и я хочу сообщить вам, что ничего из вышеперечисленного не помогло мне. Что сработало для меня:
и в одном из моих подклассов, хранящихся в отдельном файле, мне нужно было:
Все остальные ответы дали мне
nullpointerexception
.источник
Стоит упомянуть еще одну вещь: хотя приведенный выше ответ прекрасно работает, когда наша задача находится в фоновом режиме, я мог бы заставить ее работать, если бы наша задача (состоящая из обслуживания + некоторые действия) была на переднем плане (то есть, одно из наших видимых действий) пользователю) было так:
Я не знаю, используются ли здесь ACTION_VIEW или FLAG_ACTIVITY_NEW_TASK. Ключ к успеху был
и, конечно, FLAG_ACTIVITY_REORDER_TO_FRONT за то, что вы больше не создавали экземпляр действия. Удачи!
источник
нельзя использовать
Context
изService
; был в состоянии получить (пакет)Context
так:источник
FLAG_ACTIVITY_NEW_TASK
флагомС другой стороны,
Вы можете использовать свой собственный класс приложения и звонить из любого места (особенно бездействия).
И зарегистрируйте свой класс приложения:
Затем позвоните:
источник
context = getApplicationContext();
наcontext = this;
Если вам нужно отозвать активность, которая находится в bacgrounde, из вашего сервиса, я предлагаю следующую ссылку. Intent.FLAG_ACTIVITY_NEW_TASK не является решением.
https://stackoverflow.com/a/8759867/1127429
источник