Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Ejecutar servicio incluso si la aplicación está cerrada (matado)

Quiero que este servicio se ejecute incluso si la aplicación está cerrada (kiiled) o incluso si el usuario no iniciar la aplicación. Quiero que el servicio se inicie después de instalar la aplicación y desde este punto, el servicio debe ejecutarse siempre.

public class notifications extends Service { @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { } @Override public void onStart(Intent intent, int startId) { final Handler handler = new Handler(); final Runnable runb = new Runnable() { public void run() { Toast.makeText(getApplicationContext(), " Service Started", Toast.LENGTH_LONG).show(); handler.postDelayed(this, 10000); } }; handler.postDelayed(runb, 0); } @Override public void onDestroy() { } }*/ public class notifications extends IntentService { private Timer mBackGroundTimer; public notifications() { super("myservice"); this.mBackGroundTimer=new Timer(); } @Override protected void onHandleIntent(Intent intent) { // TODO Auto-generated method stub mBackGroundTimer.schedule(new TimerTask() { public void run() { try { Notification("This is message from Dipak Keshariya (Android Application Developer)", "This is Android Notification Message"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } },1000, 2000); } // END onHandleIntent() private void mStopTimer() { //Call this whenever you need to stop the service mBackGroundTimer.cancel(); } private void Notification(String notificationTitle, String notificationMessage) { NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); android.app.Notification notification = new android.app.Notification(R.drawable.ic_launcher, "A New Message from Dipak Keshariya (Android Developer)!", System.currentTimeMillis()); Intent notificationIntent = new Intent(this, MainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); notification.setLatestEventInfo(getApplicationContext(), notificationTitle, notificationMessage, pendingIntent); notificationManager.notify(10001, notification); } } 

¿como puedo hacer eso?

  • ¿Cómo puedo configurar el bloqueo de pantalla con una contraseña mediante programación?
  • ¿Puedo cambiar la animación de transición Android startActivity ()?
  • ¿Cómo cambiar el comportamiento del método mediante la reflexión?
  • Parcelable encontrado IOException writing serializable object getactivity ()
  • Obtener minSdkVersion y targetSdkVersion del archivo apk
  • Inflated ImageView para poner en GalleryView no es el tamaño correcto
  • Varias TextViews se actualizan muy lentamente
  • El cambio de permiso dinámico de marshmallow de Android mata todos los procesos de aplicación
  • Nexus 10 - no visible para adb en Windows 7 o Linux
  • Cómo capturar el error "No se puede reproducir este video" en VideoView
  • Carga de archivos de Android WebView
  • Mi aplicación se redujo significativamente en Android 4.0
  • 4 Solutions collect form web for “Ejecutar servicio incluso si la aplicación está cerrada (matado)”

    En cuanto a su código, parece que desea que su servicio periódicamente dar notificaciones.

    En cuanto a que se ejecute de forma continua va, tenga en cuenta que por diseño, el sistema Android puede terminar su proceso de servicio en cualquier momento. Usted puede influir en esto un poco, pero no puede evitar que el sistema de matar a su servicio.

    Así que para sus acciones periódicas, sería mejor usar AlarmManager con una alarma recurrente. Su servicio sería entonces básicamente one-shot, es decir, realizar la acción una vez y luego salir.

    Para algunos códigos, mire aquí por ejemplo:

    Android: Administrador de alarmas

    Debe implementar el método OnStartCommand de la clase Service y en él, devolver Service.START_STICKY. Eso hará el truco. Si cancela la aplicación, el servicio continuará ejecutándose en segundo plano. Sin embargo, si reinicias tu teléfono, creo que necesitas implementar algo más en tu aplicación, también, un servicio de arranque o algo así.

    Como usted requisito es funcionar el servicio en el fondo. Usted está en el camino correcto para utilizar el servicio, ya que esto se entiende para el fondo que se ejecuta el propósito solamente.

    De la actividad usted puede comenzar el servicio por

     startService(new Intent(activityName.this, serviceName.class)); 

    O si su aplicación no está teniendo ninguna actividad entonces usted puede hacer el servicio como defecto y lanzador principal de la aplicación poniendo

     <service android:name="name of the service" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </service> 

    Creo que la respuesta a esta pregunta es la siguiente: https://developer.android.com/training/sync-adapters/creating-sync-adapter.html

    Adaptadores de sincronización introducidos en Google I / O 2013.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.