actividad de inicio de Android desde el servicio

Androide:

public class LocationService extends Service { @Override public void onStart(Intent intent, int startId) { super.onStart(intent, startId); startActivity(new Intent(this, activity.class)); } } 

Lancé este servicio desde Activity

En Activity si la condición satisface el inicio

 startService(new Intent(WozzonActivity.this, LocationService.class)); 

desde mi LocationService mencionado anteriormente no se pudo iniciar la Activity , ¿cómo puedo obtener el contexto de la Activity actual en la clase de servicio?

Desde el interior de la clase de servicio:

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

Tuve el mismo problema, y ​​quiero hacerle saber que nada de lo anterior funcionó para mí. Lo que funcionó para mí fue:

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

y en una de mis subclases, almacenada en un archivo separado, tuve que:

 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); 

Todas las otras respuestas me dieron una nullpointerexception .

Otra cosa que vale la pena mencionar: mientras que la respuesta anterior funciona bien cuando nuestra tarea está en segundo plano, la única forma en que podría hacerlo funcionar si nuestra tarea (hecha de servicio + algunas actividades) estuviera en primer plano (es decir, una de nuestras actividades visible al usuario) fue así:

  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); 

No sé si ACTION_VIEW o FLAG_ACTIVITY_NEW_TASK tienen algún uso real aquí. La clave del éxito fue

 storedActivity.startActivity(intent); 

y, por supuesto, FLAG_ACTIVITY_REORDER_TO_FRONT para no crear una instancia de la actividad nuevamente. ¡La mejor de las suertes!

uno no puede usar el Context del Service ; fue capaz de obtener el Context (paquete) por igual:

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

Si necesita recalcular una Actividad que se encuentra en el bacgrounde, desde su servicio, le sugiero el siguiente enlace. Intent.FLAG_ACTIVITY_NEW_TASK no es la solución.

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

Alternativamente,

Puede usar su propia clase de aplicación y llamar desde donde lo necesite (especialmente sin actividades).

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

Y registre su clase de aplicación:

  

Luego llame :

 App.getContext();