Implementando processamento background em seu Midlet

Este exemplo mostra como fazer o processamento em background no seu Midlet.

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import java.io.*;

public class BackgroundProcessing extends MIDlet 
           implements CommandListener
{
  private Display display;
  private Form form; 
  private Command exit;
  private Command start; 
  public BackgroundProcessing()
  {
    display = Display.getDisplay(this);
    form = new Form("Background Processing");
    exit = new Command("Exit", Command.EXIT, 1);
    start = new Command("Start", Command.SCREEN, 2);    
    form.addCommand(exit);
    form.addCommand(start );    
    form.setCommandListener(this);
  }
  public void startApp()
  {
    display.setCurrent(form);
  }
  public void pauseApp()
  
  }
  public void destroyApp(boolean unconditional)
  
  }
  public void commandAction(Command command, Displayable displayable)
  {
    if (command == exit)
    {
      destroyApp(false);
      notifyDestroyed();
    }
    else if (command == start)
    {
      Process process = new Process(this);
      process.start(); 
      //foreground processing
    
  }
}
class Process implements Runnable
{
  private BackgroundProcessing MIDlet;
  public Process(BackgroundProcessing MIDlet)
  
   this.MIDlet = MIDlet;
  }
  public void run() 
  {
    try
    {
       transmit ();
    }
    catch (Exception error)
    
      System.err.println(error.toString());
    }      
  }
  public void start()
  {
    Thread thread = new Thread(this);
    try
    {
      thread.start();
    }
    catch (Exception error)
    {
    }
  }
  private void transmit() throws IOException 
  {
    // Colocar o código aqui para receber ou enviar transmissão..