Pessoal estou fazendo alguns testes, estou tendo um problema.
Qdo fecho o emulador os dados do meu RMS somem mesma coisa contece qdo minha app esta no celular é coisa simples adiciona normal mas se fechar a app ja erra, alguem pode me dar um help, abaixo meu programa:
Isto sempre funcionou mas agora comecou com este problema.
Grato.
[code]import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInput;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.util.Vector;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.*;
import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordStore;
/**
-
@author lorenzi
*/
public class firstRMS extends MIDlet implements CommandListener {private Display disp;
private Form frm;
private int number;
private TextBox tbNumber;
private Command cmSair;
private Command cmIncluir;
private Command cmVoltaForm;
private RecordStore rsNumber;
private RecordEnumeration reNumber;
private Vector veNumber = new Vector();
private String msg;public void startApp() {
disp = Display.getDisplay(this);
frm = new Form(“Bem vindo ao RMS”);
cmSair = new Command(“Sair”, Command.EXIT, 1);
cmIncluir = new Command(“Adicionar”, Command.ITEM, 2);
cmVoltaForm = new Command(“Voltar”, Command.BACK, 1);
frm.addCommand(cmSair);
frm.addCommand(cmIncluir);
frm.setCommandListener(this);
tbNumber = new TextBox(“Lista de Cadastro”, null,600,TextField.ANY);
tbNumber.addCommand(cmVoltaForm);
tbNumber.setCommandListener(this);disp.setCurrent(tbNumber); setRms(); mostraDados();
}
public void pauseApp() {
}public void destroyApp(boolean unconditional) {
}public void setRms(){
try
{
rsNumber = RecordStore.openRecordStore(“dbNumber”, true);
System.out.println(“Banco criado”);
System.out.println("Banco: "+rsNumber.getName()); //nome do banco
System.out.println("Registros: " + rsNumber.getNumRecords());} catch(Exception erro) { System.out.println("Erro no banco de dados"); }
}
public void insere(){
try{
//responsavel pela manipulacao byte a byte
//conjunto de dados e manipulo em bytes
ByteArrayOutputStream bStream = new ByteArrayOutputStream();
//fluxo de saida de dados, possibilita escrever em bites a bites
DataOutputStream dStream = new DataOutputStream(bStream);
dStream.writeUTF(“Numero: “);
dStream.writeInt(number);
//fluxo de saida de dados força para saida de memoria
dStream.flush();
//vetor para manipular byte a byte
byte [] numeros = bStream.toByteArray();
//adiciona no RMS
rsNumber.addRecord(numeros,0,numeros.length);
bStream.close();
dStream.close();
}
catch(Exception e)
{
System.out.println(“Errroooo de inserir”);
}
}
public void mostraDados(){
try{
ByteArrayInputStream inputStream = null;
DataInputStream dataStream = null;
//respositorio de dados = resultSet
//primeiro filtro recordFilter
//segundo ordenar lista
//terceiro dados atualizados qdo deletar se for false porde mostrar
reNumber = rsNumber.enumerateRecords(null, null, false);
int id = 0;
byte[] dados = null;
veNumber.removeAllElements();
//repeticao
msg = “”;
while (reNumber.hasNextElement())
{
id = reNumber.nextRecordId();
veNumber.addElement(””+id);
dados = rsNumber.getRecord(id);
//inicializa com o valor de dados byte a byte
inputStream = new ByteArrayInputStream(dados);
//iniciliaza os caracteres com o retorno do inputStream
dataStream = new DataInputStream(inputStream);msg = msg + dataStream.readUTF()+ " - " + dataStream.readInt() + "\n"; } if (msg == ""){ msg = "Nenhum dado encontrado!"; } tbNumber.setString(msg); inputStream.close(); dataStream.close(); } catch(Exception e) { System.out.println("Erro ao acessar dados!"); }
}
public void commandAction(Command c, Displayable d) {
if (c == cmSair){
destroyApp(true);
notifyDestroyed();
}else
if (c == cmIncluir){
for (int i = 0;i < 10; i++){
number = i;
insere();
}
mostraDados();
disp.setCurrent(tbNumber);
}else
if (c == cmVoltaForm){
disp.setCurrent(frm);
}}
}
[/code]