Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola pessoal.
Me tirem uma duvida, estou testando um projeto com RMS, ele inclui normal , mostra ok so que qdo fecho o emulador ou fecho a aplicação no aparelho, esta informação nao esta mais disponivel no retorno, ou seja esta informação se mantem desde que eu nao feche o emulador ou a aplicação no aparelho.
Pergunto, isso nao deveria ser assim? o RMS nao deveria ser persistente?
Grato.
Abaixo meu codigo, talvez seja algum problema no meu ambiente, se alguem puder rodar ele pra me dizer como funciona ai fico grato.
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);
}
}
}Carregando comentários...