Активность запуска Android от службы

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 в классе обслуживания?

Solutions Collecting From Web of "Активность запуска Android от службы"

Изнутри класса обслуживания:

 Intent dialogIntent = new Intent(this, MyActivity.class); dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(dialogIntent); 

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

  Intent dialogIntent = new Intent(this, myActivity.class); dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); this.startActivity(dialogIntent); 

И в одном моем подклассе, хранящемся в отдельном файле, я должен был:

 public static Service myService; myService = this; new SubService(myService); Intent dialogIntent = new Intent(myService, myActivity.class); dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); myService.startActivity(dialogIntent); 

Все остальные ответы дали мне nullpointerexception .

Еще одна вещь, о которой стоит упомянуть: хотя ответ выше отлично работает, когда наша задача находится в фоновом режиме, единственный способ заставить ее работать, если наша задача (сделанная из службы + некоторые действия) была на переднем плане (то есть одно из наших действий видимо Пользователю) было следующим:

  Intent intent = new Intent(storedActivity, MyActivity.class); intent.setAction(Intent.ACTION_VIEW); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); storedActivity.startActivity(intent); 

Я не знаю, действительно ли ACTION_VIEW или FLAG_ACTIVITY_NEW_TASK используются здесь. Ключом к успеху было

 storedActivity.startActivity(intent); 

И, конечно, FLAG_ACTIVITY_REORDER_TO_FRONT для повторного создания операции. Удачи!

Нельзя использовать Context Service ; Смог получить (пакет) Context :

 Intent intent = new Intent(getApplicationContext(), SomeActivity.class); 

Если вам нужно вернуть действие, находящееся в bacgrounde, из вашей службы, я предлагаю следующую ссылку. Intent.FLAG_ACTIVITY_NEW_TASK не является решением.

https://stackoverflow.com/a/8759867/1127429

С другой стороны,

Вы можете использовать свой собственный класс приложения и звонить из любого места, где вам нужно (особенно, не связанные с деятельностью).

 public class App extends Application { protected static Context context = null; @Override public void onCreate() { super.onCreate(); context = getApplicationContext(); } public static Context getContext() { return context; } } 

И зарегистрируйте свой класс приложения:

 <application android:name="yourpackage.App" ... 

Затем позвоните:

 App.getContext();