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

  • Manejo de los intentos de descarga en mi aplicación
  • Sw600dp cuantificador no funciona en Galaxy Tab
  • Se ha producido un error en la carga de la carga. Necesita utilizar un código de versión diferente para su APK porque ya tiene uno con el código de versión 2
  • Error "IBitmapDescriptorFactory no se inicializa"
  • Android L conflicto de permisos entre release y debug apks
  • Android: Convertir un mapa de bits en un mapa de bits monocromo (1 bit por pixel)
  • 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)); } 

  • Obtener / recoger una imagen de la aplicación integrada de Android en la Galería mediante programación
  • Podemos llamar a startActivityForResult de adaptador? Cómo obtener la respuesta
  • Cómo guardar / guardar objetos de clase personalizados en Android?
  • Caché ExoPlayer
  • Teclado suave introduzca el controlador de eventos clave
  • Ejecución de una prueba de unidad específica con gradle
  • 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.