Постоянный объект Blackberry дает проблемы - PullRequest
0 голосов
/ 02 февраля 2011

Я работаю с постоянным хранилищем и постоянным объектом. Я могу сохранять значения. Я сохраняю каждый примитив в вектор, а затем сохраняю вектор. Так что происходит сейчас, когда я запускаю приложение и говорю, сохраняю три значения . Эти значения сохраняются в векторе. Затем, если я запускаю приложение, n проверяю эти значения, правильно ли отображаются сохраненные значения. Теперь, если я скажу еще раз, сохраните еще два значения, чем общее сохраненное значение в векторе должно быть 5. Но когда я закрываю приложение и перезапускаю его. Он показывает только последние два значения, которые я сохранил, ранее три сохраненных значения не отображаются. Пожалуйста, помогите мне

package com.kcrw.ui;
import java.util.Random;

import net.rim.device.api.system.PersistentObject;
import net.rim.device.api.system.PersistentStore;
import java.util.Vector;

import com.kcrw.model.Song;

import net.rim.device.api.util.Arrays;
import net.rim.device.api.util.Persistable;

public class Persist implements Persistable{

    public static PersistentObject abc;
    public static PersistentObject abc1;
    public static PersistentObject abc2;
    public static PersistentObject abc3;
    public static String b;
    public static String c;
    public static String d;
    public static String e;
    public static Vector vect;
    public static Vector xyz=new Vector();
    static {
          abc   = PersistentStore.getPersistentObject(0xb92c8fe20b256b82L);
          abc1   = PersistentStore.getPersistentObject(0xa94f6433aaf45909L);
          abc2   = PersistentStore.getPersistentObject(0xfbe29f690c998fb1L);
          abc3   = PersistentStore.getPersistentObject(0x67a6bd7c03940754L);
    }

    public static void data(){
    synchronized (abc) {

        abc.setContents(((Song) MoreInfoSongDetails.shows.elementAt(MoreInfo.listFieldIndex))
                .getTitle());
        abc.commit();
         }


synchronized (abc1) {

        abc1.setContents(((Song) MoreInfoSongDetails.shows.elementAt(MoreInfo.listFieldIndex))
                .getAirtime());
        abc1.commit();
         }


synchronized (abc2) {

    abc2.setContents(((Song) MoreInfoSongDetails.shows.elementAt(MoreInfo.listFieldIndex))
            .getAlbumImage());
    abc2.commit();
     }
synchronized (abc3) {
      System.out.println("vector size is"+xyz);



    abc3.setContents(xyz);

    abc3.commit();
     }  

}

    public static String getTitle() {
        synchronized (abc) {

            b= (String)abc.getContents();
            //xyz.addElement(b);
            return b;
        }
    }
    public static String getTime() {
        synchronized (abc1) {

            c= (String)abc1.getContents();
            //xyz.addElement(c);
            return c;
        }
    }

    public static String getImage() {
        synchronized (abc2) {

            d= (String)abc2.getContents();
            //xyz.addElement(d);

            return d;
        }

    }
    public static Vector save() {
        synchronized (abc3) {

            vect= (Vector)abc3.getContents();
        int i=vect.size();
        for(int b=0;b<i;b++){
            System.out.println("element at"+b+"is"+vect.elementAt(b));
        }
            return vect;
        }

    }   
}

1 Ответ

1 голос
/ 02 февраля 2011

Ваш пример кода не велик, но сохранить и восстановить вектор довольно тривиально, как показано здесь:

http://www.blackberry.com/developers/docs/4.5.0api/net/rim/device/api/system/PersistentStore.html

Я включил это в небольшой учебник на постоянство объекта.Есть также колода PowerPoint здесь , которая дает еще больше деталей.

Просмотрите эти страницы, и вы сможете найти свою проблему. \

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...