logo
Bienvenido visitante. Para activar todas las funcionalidades, por favor Iniciar sesión o Registrarse.

Aviso

Icon
Error

Opciones
Ir a la última publicación
luisdelgado  
#1 Publicado : jueves, 24 de enero de 2019 20:41:36(UTC)
luisdelgado

Posición: Newbie

Grupos: Registered
Registrado: 24/01/2019(UTC)
Mensajes: 1
México

Buen día Compañeros!

Una pregunta:

Tengo una aplicación que utiliza un IntentService, que su tarea es crear cuatro archivos en un intervalo de tiempo.

Observación: sustituí los símbolos menor que por ( y mayor que por ), no me permitía poner el símbolo de menor que en esta página (porque me mandaba un mensaje de error).

tiempos.xml
(?xml version="1.0" encoding="utf-8"?)
(resources)
(string name="tiempoFinal")20190123223200(/string)
(string-array name="arregloTiempos")
(item)20190123223000(/item)
(item)20190123223030(/item)
(item)20190123223100(/item)
(item)20190123223130(/item)
(/string-array)
(/resources)

activity_main.xml
(?xml version="1.0" encoding="utf-8"?)
(LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity")
(Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:onClick="startService"
android:text="start service" /)
(Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button"
android:layout_gravity="center_horizontal"
android:onClick="stopService"
android:text="stop service" /)
(/LinearLayout)

MainActivity.java
package com.servicedemo;

import ...

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void startService(View view) {
Intent intent = new Intent(this, MyService.class);
startService(intent);
}
public void stopService(View view) {
Intent intent = new Intent(this, MyService.class);
stopService(intent);
}
}

MyService.java
package com.servicedemo;

import ...

public class MyService extends IntentService {
String ruta = "/storage/emulated/0/";
String nuevaCarpeta = "Carpeta";
String nuevoArchivo = "Archivo_";

public MyService() {
super("My_Worker_Thread");
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(this, "Service Started...", Toast.LENGTH_LONG).show();
return super.onStartCommand(intent, flags, startId);
}

@Override
public void onDestroy() {
Toast.makeText(this, "Service Stopped...", Toast.LENGTH_LONG).show();
super.onDestroy();
}

@Override
protected void onHandleIntent(Intent intent) {
synchronized (this) {
String[] tiempos = getResources().getStringArray(R.array.arregloTiempos);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss", Locale.getDefault());
boolean sw = true;
byte pos = 0;
while (sw) {
Date date = new Date();
String fecha = dateFormat.format(date);
if (fecha.equals(getResources().getString(R.string.tiempoFinal))) sw = false;
for (byte i = pos; i < tiempos.length; i++) {
if (fecha.equals(tiempos[i])) {
pos = i;
try {
File file = new File(ruta + nuevaCarpeta, nuevoArchivo + tiempos[i] + ".txt");
file.createNewFile();
} catch (Exception e) {
Log.e("Error", "e: " + e);
}
}
}
}
}
}
}

Pero, el IntentService termina antes de que se cumpla la condición, si me crea los cuatro archivos, pero lo que me causa ruido es que el mensaje del Toast que esta en el destroy aparece antes de que termine de generar los cuatro archivos [como si ya se hubiera cumplido la condición de salida -> (string name="tiempoFinal")20190123223200(/string)].

De antemano, gracias.
Usuarios navegando este tema
Guest
Salto de foro  
No puedes iniciar nuevos temas en este foro.
No puedes responder a temas en este foro.
No puedes eliminar sus temas en este foro.
No puedes editar sus temas en este foro.
No puedes crear encuestas en este foro.
No puedes votar las encuestas en este foro.