В настоящее время у меня есть код для разделения переменной между двумя точками входа в моем приложении.Переменная - это переменная iconCount, используемая для указания количества уведомлений пользователя, которое отображается на домашнем экране рядом со значком.Мне удалось сделать это с помощью синглтона, и в данный момент он (кажется) работает нормально.Проблема в том, что я не хочу, чтобы эти уведомления сбрасывались в ноль, когда я полностью выключаю и включаю телефон.Если должно быть 7 уведомлений, я хочу, чтобы было 7 уведомлений даже после перезагрузки устройства.Для этого мне, очевидно, нужна постоянная интеграция магазина, которую я изучал некоторое время.
Пока мой код для чистого синглтона:
public class MyAppIndicator{
public ApplicationIndicator _indicator;
public static MyAppIndicator _instance;
MyAppIndicator () {
setupIndicator();
}
public static MyAppIndicator getInstance() {
if (_instance == null) {
_instance = new MyAppIndicator ();
}
return(_instance);
}
public void setupIndicator() {
//Setup notification
if (_indicator == null) {
ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry.getInstance();
_indicator = reg.getApplicationIndicator();
if(_indicator == null) {
ApplicationIcon icon = new ApplicationIcon(EncodedImage.getEncodedImageResource ("notificationsdemo_jde.png"));
_indicator = reg.register(icon, false, true);
_indicator.setValue(0);
_indicator.setVisible(false);
}
}
}
public void setVisible1(boolean visible, int count) {
if (_indicator != null) {
if (visible) {
_indicator.setVisible(true);
_indicator.setValue(count); //UserInterface.incrementCount()
} else {
_indicator.setVisible(false);
}
}
}
}
Я использовал учебник по Blackberry, чтобы выяснить, как реализовать постоянное хранилище: http://supportforums.blackberry.com/t5/Java-Development/Storing-persistent-data/ta-p/442747
Теперь, прежде чем идти дальше, я должен подчеркнуть, что я очень плохо знаком с Java-разработкой, поэтому мое кодирование может быть совершенно неверным, но вот что я пытался сделать:
public void setVisible1(boolean visible, int count) {
if (_indicator != null) {
if (visible) {
_indicator.setVisible(true);
_indicator.setValue(count); //UserInterface.incrementCount()
StoreInfo info = new StoreInfo();
info.incElement();
synchronized (persistentCount) {
//persistentCount.setContents(_data);
persistentCount.commit();
}
} else {
_indicator.setVisible(false);
}
}
}
static {
persistentCount = PersistentStore.getPersistentObject(0xdec6a67096f833cL);
synchronized (persistentCount) {
if (persistentCount.getContents() == null) {
persistentCount.setContents(new Vector()); //don't know what to do with this?
persistentCount.commit();
}
}
}
private static final class StoreInfo implements Persistable{
private int iconCount;
public StoreInfo(){}
public int getElement(){
return (int)iconCount;
}
public void incElement(){
iconCount++; //persistently increment icon variable
}
public void resetElement(){
iconCount=0; //when user checks application
}
}
Код выше нене работа, которую я бы ожидал как-то, потому что у меня проблемы с реализацией постоянной части.Если у кого-то есть идеи или предложения о том, как этого добиться, любая помощь будет полезна.И конечно спасибо заранее.