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


Android Timer dentro de un servicio

Tengo problemas para ejecutar un temporizador en un servicio que he creado. La tarea que el temporizador llama simplemente no se llama. Sé que el servicio comienza cuando he puesto tostadas dentro de él y se llaman, pero no cuando están dentro del contador de tiempo. Ayuda apreciada.

Clase de servicio

  • Cámara androide estirada en modo horizontal
  • Android Studio: nombre del mapa de teclado / acceso directo que muestra la sugerencia de los parámetros del método?
  • Comandos de Gradle fallan en API 23 Imagen del emulador de la API de Google (armeabi-v7a)
  • No se puede establecer la actividad de los padres para nuevas actividades en Android Studio. Error: padre jerárquico ya debe existir
  • Android scrollview no se llena la vista de los padres
  • Cómo cambiar la casilla de verificación (marcar casilla) color a blanco en android XML
  • public class LocalService extends Service { private static Timer timer = new Timer(); private Context ctx; public IBinder onBind(Intent arg0) { return null; } public void onCreate() { super.onCreate(); ctx = this; startService(); } private void startService() { timer.scheduleAtFixedRate(new mainTask(), 0, 5000); } private class mainTask extends TimerTask { public void run() { Toast.makeText(ctx, "test", Toast.LENGTH_SHORT).show(); } } public void onDestroy() { super.onDestroy(); Toast.makeText(this, "Service Stopped ...", Toast.LENGTH_SHORT).show(); } } 

    Clase principal:

     public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); startService(new Intent(RingerSchedule.this, LocalService.class)); } 

  • La importación com.google.android.gms no se puede resolver
  • Android NDK: Ninguna regla para hacer objetivo
  • Cómo crear un servicio nativo de android y utilizar el cuaderno para comunicarse con él?
  • Cómo pasar ArrayList de objetos de una a otra actividad utilizando Intent en android?
  • Desplazamiento de Android SurfaceView
  • ¿Cómo puedo excluir .jar externa de obfuscation por Proguard (proyecto de Android)?
  • 2 Solutions collect form web for “Android Timer dentro de un servicio”

    Android no permite eventos de interfaz de usuario como brindis desde fuera del hilo principal. La ejecución se está llamando, pero el brindis está siendo ignorado.

    Para crear el Toast en el hilo de interfaz de usuario, puede utilizar un Handler y un mensaje vacío como el siguiente:

     public class LocalService extends Service { private static Timer timer = new Timer(); private Context ctx; public IBinder onBind(Intent arg0) { return null; } public void onCreate() { super.onCreate(); ctx = this; startService(); } private void startService() { timer.scheduleAtFixedRate(new mainTask(), 0, 5000); } private class mainTask extends TimerTask { public void run() { toastHandler.sendEmptyMessage(0); } } public void onDestroy() { super.onDestroy(); Toast.makeText(this, "Service Stopped ...", Toast.LENGTH_SHORT).show(); } private final Handler toastHandler = new Handler() { @Override public void handleMessage(Message msg) { Toast.makeText(getApplicationContext(), "test", Toast.LENGTH_SHORT).show(); } }; } 

    Gracias, también necesitaba cancelar el temporizador ..

     public void onDestroy() { timer.cancel(); Toast.makeText(this, "ServiceTalkGeology stopped.", Toast.LENGTH_SHORT).show(); super.onDestroy(); } 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.