onNotification not called (SDK to push at low altitude)

Finally my notification of base URL has been saved

Thanks to [email protected]

no more error that the base url is not available if the ppgNotifiedRequestedTo parameter

My basic notification url: http://my-server.org:nnnn /

My ppgNotifiedRequestedTo: /pushnotify

I extended PapServiceImpl and implemented onNotification:

public class PapNotificationService extends PapServiceImpl {

    @Override
    public void onNotification(ResultNotification resultNotification,
            Map notificationParameters)
            throws PushSDKException {
        logger.debug("On Notification ###################");
    }
}

I extended BasicNotificationServlet and implemented the getPapService simply return a new PapNotificationService (see above):

public class PushNotificationServlet extends BasicNotificationServlet {

    /* (non-Javadoc)
     * @see net.rim.pushsdk.pap.web.BasicNotificationServlet#getPapService()
     */
    @Override
    protected PapService getPapService() {
        return new PapNotificationService();
    }

    @Override
    public void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        logger.debug("doPost called");
        super.doPost(req, resp);
    }

}

I tested this Servlet of the browser:

http://my-server.org:nnnn / pushnotify

and as expected make me:

16:40:38.208 DEBUG [o.e.b.p.b.i.PushNotificationServlet] doPost called
16:40:38.224 INFO  [net.rim.pushsdk.pap.PapServiceImpl] PushSDKException caught while receiving result notification:
net.rim.pushsdk.commons.PushSDKException: No XML content to parse; document is empty

If the servlet is working

but its never called so by pushing. shoot is done properly with QualityOfService DeliveryMethod CONFIRMED and ppgNotifiedRequestedTo has the value

PapService papService = new PapServiceImpl();
papService.setHttpClient(client);
papService.setPushSDKProperties(pushProperties);
.....
pushMessageControl = new PushMessageControl(
    idGenerator,
    PUSH_APP_ID,
    PPG_NOTIFY_REQUESTED_TO_URLPART,
    addresses);
.....
response = papService.push(
    PUSH_APP_ID, // BIS username
    PUSH_APP_PW, // BIS pw
    PUSH_APP_ID, // BIS port
    pushMessageControl, // PUSH msg attributes
    papContent); // the content

questioning of the State, I get in WAITING and a few seconds later CONFIRMED

but I don't get any Notification

no idea what could be the problem?

THX

GOD

BTW: I'll publish my JavaSE whole - solution of low level as Open Source (EPL) for easy start with PushServices without installing springsoftware etc. all running inside the eclipse.

the problem is now solved

thx for help - RIM problem was

...

My basic notification url: http://my-server.org:nnnn /

...

where I am listed as notification to the RIM base url:

http://my-server.org:8081 /.

Important notice to evaluate all Push Service Plus: only Ports 80 and 443 are allowed as base URL of notification .

otherwise the notification messages find a way out of RIM Push Server

According to RIM documentation is added for this

Tags: BlackBerry Developers

Similar Questions

  • Installation of the SDK Service push BB 1.1.0 - 16 fails

    I try to install BB push Service SDK 1.1.0-1, but the installation program always stops at the initial screen after extraction.

    Running Windows 7 on VMware Fusion

    Java JDK 6 is installed

    Set JAVA_HOME and JAVA_HOME/bin is added to the path

    The installation program creates a log file?

    Are there other requirements beside the JDK 6?

    I downloaded the SDK Service push once again and reinstalled the JDK 6.

    I have already installed successfully the SDK on another virtual computer, but don't find any difference, why the installer does not work in this virtual machine.

    You could give a shot setup of Linux on your Mac, but my guess is that it might not work.

    A Mac-specific installer is coming in the near future by the way.

    An alternative is to download the raw distribution files themselves from here:

    https://developer.BlackBerry.com/DevZone/develop/platform_services/push_overview.html

    See the section "you can also download the API of high level and low level form of raw files archive".

    You download the file to archive just Linux and download it to your Mac.

    The main difference between the installer and using the files from archive directly, it is that the installation program offers the possibility to deploy high level samples we provide with Apache Tomcat.  (Tomcat is not part of the SDK is, incidentally.)  "It's just to show the samples).

  • the menu item run method not called

    Eclipse SDK Version: 3.4.1

    BlackBerry JDE plugin for Eclipse Version: 1.0.0.50

    BlackBerry JDE component package Version: 4.5.0.14

    I added a menu item to the contacts list. I would like to get the context when the user clicks the menu item, but the run method is not entered. When the user clicks the item in the menu the main routine is entered with correct arguments. Should not called run with the context method? No exception is thrown.

     

    Import net.rim.blackberry.api.menuitem.ApplicationMenuItem;
    Import net.rim.blackberry.api.menuitem.ApplicationMenuItemRepository;
    Import net.rim.device.api.system.Application;
    Import net.rim.device.api.system.ApplicationDescriptor;

    SerializableAttribute public class BwMain extends Application {}
    private static final long APP_ID = 0xf46f5a7867d69ff0L;
    private static final String ARG_LAUNCH_BW = "1";

    public BwMain() {}
    long menuItemLocation = ApplicationMenuItemRepository.MENUITEM_ADDRESSBOOK_LIST;
    ContactsBwMenuItem menuItem = new ContactsBwMenuItem();
    ToolBarMenuButton.AddMenuItem (menuItemLocation, ARG_LAUNCH_BW, menuItem);
    System.Exit (0);
    }

    Public Shared Sub main (String [] args) {}
    If (args == null | args.length == 0) {}
    BwMain bwMain = new BwMain();
    bwMain.enterEventDispatcher ();
    }
    else {}
    System.out.println ("App launched from the menu");
    }
    }

    private public static Sub ToolBarMenuButton.AddMenuItem (long location, String argOfAppl, ApplicationMenuItem appMenuItem) {}
    Amir ApplicationMenuItemRepository = ApplicationMenuItemRepository.getInstance ();
    ApplicationDescriptor app = ApplicationDescriptor.currentApplicationDescriptor ();
    app = new ApplicationDescriptor (app, new String [] {ARG_LAUNCH_BW});
    amir.addMenuItem (location, appMenuItem, app);
    }

    private static class ContactsBwMenuItem extends ApplicationMenuItem {}
    {ContactsBwMenuItem()}
    Super (20);
    }

    public String toString() {}
    return "PC connection";
    }

    public Object execute (object context) {}
    try {}
    System.out.println ("input run method");
    } catch (Exception e) {}
    e.printStackTrace ();
    }
    Returns a null value.
    }
    }
    }

    You call system.exit() in the Builder before entering the EventDispatcher. I'm guessing that you add the menu item, but leave the application, and when the menu item is called it is more a reference to the context of the application and decides not to continue. The menu item will not remove itself when the application closes.

  • TreeView not called ApplyDataToWidget()

    Hi all
    I just tried to change the example SDK «WListBoxComposite» program My change was instead of display the treeview in a Panel widget, I tried to show the treeview widget in a dialog box. After the change, the ApplyDataToWidget() (from WidgetMgr.cpp) is not called. The only difference I have found is in the class declaration. The first statement here is an example (SDK) and I modified as indicated in the latest in fabrics of the dialog box. Am I missing something? How can I get my ApplyDataToWidget() function to call? Help me in this regard. Thanks in advance.


    Class
    {
    kWLBCmpPanelWidgetBoss,
    kPalettePanelWidgetBoss,
    {
    / * An implementation of ITextControlData, but with the interface
    IID_IPANELMENUDATA identifier, is used to name the menu drop-down Panel.
    The implementation provided by the API.
    */
    IID_IPANELMENUDATA, kCPanelMenuDataImpl,
    }
    },


    Class
    {kWLBCmpDialogBoss, kDialogBoss,
    {
    IID_IDIALOGCONTROLLER, kWLBCmpDialogControllerImpl,
    }
    },


    Kind regards
    John

    Try adding something like this:

    PanelWithHiliteBorderWidget / / or GenericPanelWidget
    (
    kTVSyncPanelWidgetID, kPMRsrcID_None, kBindTop | kBindLeft | kBindRight,
    Frame (-1, 50, 301, 140),
    kTrue, kTrue, «»,
    {
       
    SyncListBox
    (
    kSyncListBoxWidgetID, kPMRsrcID_None,
    kBindAll, Frame (-1, 0, 301, 140)
    kTrue, kTrue, kTrue,
    kInterfacePaletteFill,
    ""
    ,
    kHideRootNode | kDrawEndLine,
    kFalse, kTrue, 20, 20, 0, 0, 2,
    kFalse, kTrue,
    {
    The tree is created dynamically.
    },
    ),

    }
    ),

    and add the kTVSyncPanelWidgetID in the file "YourPluginID.h".

    Best regards

    Bartek

  • DW not call script, unless I put it in the model

    Hi all

    I'm trying to call a function (javascript) that should be placed in the < head > tags of my page. The page is based on my main model, which contains some basic javascript functions used on the site.

    Please take a look at my code. I think that I placed the script (validateAddToCart) in the correct position, in the region of "Editable" from the < head > section of the page. But when I click on the button that calls the script, it does not (at the moment I just display an alert for test purposes).

    However, if I had to change my main model and place this function in the same area as the other common functions javascript... it works. I am able to call him very well. Of course I don't want to do this, as the script will only be used from this page.

    Everyone can see what is the problem? Any help would be appreciated. Thank you!


    FF says there's an error of syntax in it-

    If (N = 'Y') & (cust_text == "") \n
    --------^

    I bet that's it. See if that changes things for you...

    --
    Murray - ICQ 71997575
    Adobe Community Expert
    (If you * MUST * write me, don't don't LAUGH when you do!)
    ==================
    http://www.projectseven.com/go - DW FAQs, tutorials & resources
    http://www.dwfaq.com - DW FAQs, tutorials & resources
    ==================

    "Vozzek" wrote in message
    News:fh2aks$Hae$1@forums. Macromedia.com...
    > OK, here's a link to the details page:
    >
    > http://www.thefrogandtheprincess.com/detail99.php?RecordID=3
    >
    > The 'validateAddToCart' script is not called when the button Add to cart
    > button
    > is pushed. However, if I add the script in my main template, it
    > concludes
    > without problem.
    >
    >
    >

  • the disk you inserted is not called by this computer

    Whenever I start the computer, it starts flashing on the screen "the disk you inserted was not called by this computer.

    When I booted into it, it shows me the Macintosh HD. I activated the 'first aid' keys and able to diagnose and the result was ok.

    Is - it my Fusion drive is causing the problem?

    Mr. Chua

    Mr. Chua,

    Please post a report of EtreCheck of your system. We then look for obvious problems. Please click on the link, download the application and run the report. Once you have the report, please copy and paste into your response to this post.

  • You can not call a method on a null value expression.

    Hello

    We are working on the tool of basic hygiene WMI for windows 2008 server of health check of the scent system but in error during the run automation tool

    "Cannot call a method on a null expression."

    LE000561ERROR: You can not call a method on a null value expression.
    ERROR: The value of the argument cannot be an empty string.

    Please suggest the same

    Hi Diakité Srivastava,

    Your question is more complex than what is generally answered in the Microsoft Answers forums. It is better suited for the IT Pro TechNet public. Please post your question in the TechNet forum.

    http://social.technet.Microsoft.com/forums/en/category/WindowsServer/

  • Windows call you if you have not called?

    I got a strange call today. The guy calling said it was Windows support and that I had something encrypted in my computer that sent many emails and it would destroy my hard drive if I don't go to my computer and let it guide me through the connection and it allow to correct the problem. What's up with that? I have NOT called Windows with any problem and have had my PC scanned with 3 anti virus and anti malware programs and does not appear in case of problems. I went in my history of scanning and it shows that someone tried to get into my computer but have been blocked several times. Would it be legitimate? The number he called from is 201-338-6150 located in Dumont, NJ (fixed) listed in teleport communications group. Someone advised me that it is. Thank you

    Hello

    These are SCAMS!

    In the United States, you can contact the FBI, Attorney general, the police authorities and consumer
    Watch groups. Arm yourself with knowledge.

    No, Microsoft wouldn't you not solicited. Or they would know if errors exist on your
    computer. So that's the fraud or scams to get your money or worse to steal your identity.

    Avoid scams that use the Microsoft name fraudulently - Microsoft is not unsolicited
    phone calls to help you fix your computer
    http://www.Microsoft.com/protect/fraud/phishing/msName.aspx

    Scams and hoaxes
    http://support.Microsoft.com/contactus/cu_sc_virsec_master?ws=support#tab3

    Microsoft Support Center consumer
    https://consumersecuritysupport.Microsoft.com/default.aspx?altbrand=true&SD=GN&ln=en-us&St=1&wfxredirect=1&gssnb=1

    Microsoft technical support
    http://support.Microsoft.com/contactus/?ws=support#TAB0

    Microsoft - contact technical support
    http://Windows.Microsoft.com/en-us/Windows/help/contact-support

    I hope this helps.

    Rob Brown - Microsoft MVP<- profile="" -="" windows="" expert="" -="" consumer="" :="" bicycle="" -="" mark="" twain="" said="" it="">

  • Simply my slot is not called

    /*
     * CustomTimer.h
     *
     *  Created on: Feb 6, 2015
     *      Author: shubhendusharma
     */
    
    #ifndef CUSTOMTIMER_H_
    #define CUSTOMTIMER_H_
    #include 
    #include 
    #include 
    #include 
    class CustomTimer:public QObject
    {
        Q_OBJECT
       public:
        CustomTimer();
           QTimer *timer;
    
       public slots:
           void MyTimerSlot();
    };
    
    #endif /* CUSTOMTIMER_H_ */
    
    /*
     * CustomTimer.cpp
     *
     *  Created on: Feb 6, 2015
     *      Author: shubhendusharma
     */
    
    #include 
    #include 
     #include 
    CustomTimer::CustomTimer()
    {
        qDebug() << "hello123"; this is printing but method MyTimeSlot is not calling
        // create a timer
        timer = new QTimer(this);
    
        // setup signal and slot
        connect(timer, SIGNAL(timeout()),
              this, SLOT(MyTimerSlot()));
    
        // msec
        timer->start(100);
    }
    
    void CustomTimer::MyTimerSlot()// not calling
    {
        //QTime time = QTime::currentTime();
            //QString text = time.toString("hh:mm");
      //  QTime time = QTime::currentTime();
        //qDebug() <<"hello" +time.toString();
        qDebug() << "hello";
    }
    

    I now call this class

    ApplicationUI::ApplicationUI() :
            QObject()
    {
        CustomTimer timer;
        qmlRegisterType("my.library", 1, 0, "QTimer");
       qmlRegisterType("map.location", 1, 0, "LocationService");
        QmlDocument *qml = QmlDocument::create("asset:///homescreens.qml").parent(this);
     //   Login *login=new Login(this);
       // qml->setContextProperty("login", login);
    
        // Create root object for the UI
        AbstractPane *root = qml->createRootObject();
        Application::instance()->setScene(root);
    
    }
    

    Sorry it was my mistake.

    In fact, I created the object in another class despite the Main.class.

    Now it the call...

  • Extended method of field paint will not called

    I would go to a field and would like to paint something there.

    By extending the field I must apply setLayout (int x, int y) wcich get is called successfully.

    Thing strange number one: x is 360 (that's fine because I have it returned by getPreferredWitdh), there is

    1073741803 which is more hell? In getPreferredHeight I returned 480...

    Second, my method of painting is not called at all! See code below.

    You forgot to call your layout() setExtent() while defining the scope of the field is the main object of the layout () - to tell the parent Manager how much space you wish to occupy. Without putting your width and height are (0, 0), which explains why your parent Manager never calls object of your field.

    The fact that you get almost unlimited height in your layout() is also easy to explain: you probably use screen that has default VERTICAL_SCROLL.  And managers who have VERTICAL_SCROLL allocates Integer.MAX_VALUE > 1 pixel at the start for their children.  Your LabelField consumed 14 of this value (using setExtent (textWidth, 14), of course) and then screen offered the rest of your domain.

    Also note that getPreferredHeight() and getPreferredWidth() are ignored by the vast majority of managers and fields.

  • C++ class destructor not called on request nearby

    I started playing with waterfall and C++ development but im having a problem where I can link my class to the qml and use breast but firm request the something on my class hangs the request and its icon in the emulator will slightly transparent and can no longer be clicked.

    It's the call to add it to the qml

    File: Applicationui.cpp
    
    ApplicationUI::ApplicationUI(bb::cascades::Application *app): QObject(app){ // create scene document from main.qml asset // set parent to created document to ensure it exists for the whole application lifetime QmlDocument *qml = QmlDocument::create("asset:///main.qml").parent(this);
    
    //My classGpsCommunicator* gps = new GpsCommunicator();
    
    //Add the Classqml->setContextProperty("_gps",gps);
    
    // create root object for the UI AbstractPane *root = qml->createRootObject();
    
    // set created root object as a scene app->setScene(root);
    }
     
    

    Here is the class.hpp

    
    class GpsCommunicator : public QObject {
    Q_OBJECT
    
    Q_PROPERTY(double latitude READ latitude) Q_PROPERTY(double longitude READ longitude) Q_PROPERTY(double accuracy READ accuracy) Q_PROPERTY(double altitude READ altitude) Q_PROPERTY(double heading READ heading) Q_PROPERTY(double satellites READ satellites) Q_PROPERTY(double speed READ speed)
    Q_PROPERTY(bool isRegistered READ isRegistered) Q_PROPERTY(bool isAltitudeValid READ isAltitudeValid) Q_PROPERTY(bool isAccuracyValid READ isAccuracyValid) Q_PROPERTY(bool isHeadingValid READ isHeadingValid) Q_PROPERTY(bool isSpeedValid READ isSpeedValid)
    public: GpsCommunicator(QObject *parent = 0); virtual ~GpsCommunicator();
    //Latitude Property double latitude();
    //Latitude Property double longitude();
    //Accuracy Property double accuracy(); bool isAccuracyValid();
    //Altitude Property double altitude(); bool isAltitudeValid();
    //Heading Property double heading(); bool isHeadingValid();
    //Speed Property double speed(); bool isSpeedValid();
    //Number of Satellite Property double satellites();
    //Registered successfully to geolocation events bool isRegistered();
    Q_INVOKABLE void StartPollTimer(int i = 0); Q_INVOKABLE void StopPollTimer();
    signals:
    
    private:
    //Bool to track if this class is registered to receive geo-location events bool m_isRegistered;
    double m_latitude; double m_longitude; double m_accuracy; bool m_accuracy_valid; double m_altitude; bool m_altitude_valid; double m_altitude_accuracy; bool m_altitude_accuracy_valid; double m_heading; bool m_heading_valid; double m_speed; bool m_speed_valid; double m_num_satellites; bool m_num_satellites_valid;
    void InitializeGps(); void InitializeCommunicator();
    //Poll timer QTimer *pollTimer;
    
    public slots:
    void CheckForGPSEvent();
    };
     
    

    Here is the .cpp for her

    
    GpsCommunicator::GpsCommunicator(QObject *parent): QObject(parent) { //Start up sequence this->InitializeCommunicator(); this->InitializeGps();}
    void GpsCommunicator::InitializeCommunicator() { this->m_isRegistered = false;}
    GpsCommunicator::~GpsCommunicator() { // TODO Auto-generated destructor stub this->StopPollTimer(); delete this->pollTimer; geolocation_stop_events(0); bps_shutdown();}
    double GpsCommunicator::latitude() { return this->m_latitude;}
    double GpsCommunicator::speed() { return this->m_speed;}
    double GpsCommunicator::altitude() { return this->m_altitude;}
    double GpsCommunicator::longitude() { return this->m_longitude;}
    double GpsCommunicator::accuracy() { return this->m_accuracy;}
    double GpsCommunicator::heading() { return this->m_heading;}
    double GpsCommunicator::satellites() { return this->m_num_satellites;}
    bool GpsCommunicator::isRegistered(){ return this->m_isRegistered;}
    bool GpsCommunicator::isSpeedValid() { return this->m_speed_valid;}
    bool GpsCommunicator::isAccuracyValid() { return this->m_accuracy_valid;}
    bool GpsCommunicator::isAltitudeValid() { return this->m_altitude_valid;}
    bool GpsCommunicator::isHeadingValid() { return this->m_heading_valid;}
    void GpsCommunicator::StartPollTimer(int i) { this->pollTimer->start(i);}
    void GpsCommunicator::StopPollTimer() { this->pollTimer->stop();}
    void GpsCommunicator::InitializeGps() {
    if( bps_initialize() != BPS_FAILURE) { if ( geolocation_request_events( 0 ) != BPS_SUCCESS ) { //Report that the initialize failed this->m_isRegistered = false; //emit this->registeredChanged(this->m_isRegistered); } else { geolocation_set_period(1);
    //Update that the communicator is now registered and emit the signal this->m_isRegistered = true; //emit this->registeredChanged(this->m_isRegistered);
    //Create the timer instance this->pollTimer = new QTimer();
    //Connect it to the polling function this->connect(this->pollTimer, SIGNAL(timeout()), this, SLOT(CheckForGPSEvent())); this->StartPollTimer(100); } }}
    void GpsCommunicator::CheckForGPSEvent() {
    bps_event_t *event = NULL; bps_get_event(&event, 100); // -1 means that the function waits // for an event before returning if (event) {
    if (bps_event_get_domain(event) == geolocation_get_domain()) {
    if (event == NULL || bps_event_get_code(event) != GEOLOCATION_INFO) { return; }
    // TODO: change this so the emit is only called if the information is new
    this->m_latitude = geolocation_event_get_latitude(event); //emit this->latitudeChanged(this->m_latitude);
    this->m_longitude = geolocation_event_get_longitude(event); //emit this->longitudeChanged(this->m_longitude);
    this->m_accuracy = geolocation_event_get_accuracy(event); //emit this->accuracyChanged(this->m_accuracy);
    this->m_altitude = geolocation_event_get_altitude(event); //emit this->altitudeChanged(this->m_altitude);
    this->m_altitude_valid = geolocation_event_is_altitude_valid(event);
    this->m_altitude_accuracy = geolocation_event_get_altitude_accuracy(event);
    this->m_altitude_accuracy_valid = geolocation_event_is_altitude_accuracy_valid(event);
    this->m_heading = geolocation_event_get_heading(event); //emit this->headingChanged(this->m_heading);
    this->m_heading_valid = geolocation_event_is_heading_valid(event);
    this->m_speed = geolocation_event_get_speed(event); //emit this->speedChanged(this->m_speed);
    this->m_speed_valid = geolocation_event_is_speed_valid(event);
    this->m_num_satellites = geolocation_event_get_num_satellites_used(event); //emit this->satellitesChanged(this->m_num_satellites);
    this->m_num_satellites_valid = geolocation_event_is_num_satellites_valid(event); } }
    return;}
    

    I was checking to see if the deconstructor was called, but it doesn't seem to be. So I think it might be the QTimer not cleaned but I don't know how I get it to call on family members since I thought that once I signed with qml my QObject class would be deconstructed with other resources in a certain order.

    Thanks in advance for any help

    Do not call bps_get_event from an application of stunts that you might fly the main event loop events.  Rather implement AbstractBpsEventHandler to the BPS events delivered on the thread of your event.

  • onExposed not called

    Hello

    I have a problem that a screen is not be changed because it's "onExposed" method is not called when I expect to be.

    Here's the scenario:

    1 screen 'foo' extends screen and is displayed.

    2. the user selects a menu item which, among other things, displays the 'bar' screen that extends PopupScreen.

    -'bar' screen in the event thread by using the following statement

    application.pushGlobalScreen (bar, 0, Dialog.GLOBAL_STATUS);

    3. the 'bar' screen gets popped display by a background with the following thread.

    synchronized (application.getAppEventLock ()) {}
    application.popScreen (bar);
    }

    4. after step 3 I was expecting the overloaded method 'onExposed' of the screen 'foo' to be called and refresh the data in the form. But this isn't the case.

    I tried a number of things, but I can't get the screen hidden to cool off when it is displayed.

    I run on the global phone OS4.2.1 Simulator.

    Any suggestions would be greatly appreciated.

    News Flash! The problem was in my code. onExposed has been called, but not when I thought it would be.

  • Run not called in thread

    I'm trying to get a thread that runs in the background to update a label field in a screen, but for some reason any of the thread run() method is not called. I'm using JDE 4.3.0.

    package UpdateTest;
    
    import net.rim.device.api.ui.UiApplication;
    import net.rim.device.api.ui.component.LabelField;
    import net.rim.device.api.ui.container.MainScreen;
    import net.rim.device.api.ui.component.Dialog;
    import net.rim.device.api.system.DeviceInfo;
    import java.lang.Runnable;
    import java.lang.Thread;
    
    public class UpdateTest extends UiApplication
    {
        public UpdateTest()
        {
          pushScreen(new UpdateTestScreen());
        }
    
        public static void main(String[] args)
        {
            UpdateTest bm = new UpdateTest();
            bm.enterEventDispatcher();
        }
    } 
    
    final class UpdateTestScreen extends MainScreen
    {
        LabelField _field;
    
        UpdateThread upThread;
    
        public UpdateTestScreen()
        {
            super();
    
            upThread = new UpdateThread();
            upThread.start();
    
            setTitle("Update field test");
    
            add( new LabelField("field: ") );
            _field = new LabelField("0");
            add(_field);
        }
    
        public boolean onClose()
        {
            Dialog.alert("exit");
            upThread.stop();
            System.exit(0);
            return true;
        }
    
        public class UpdateThread extends Thread
        {
            private volatile boolean _start = false;
            private volatile boolean _stop = false;
            private static final int TIMEOUT = 500;
    
            public UpdateThread()
            {
                super();
                System.out.println("UpdateThread Created");
            }
    
            public void stop()
            {
                _stop = true;
                System.out.println("UpdateThread Stopped");
            }
    
            public void start()
            {
                _start = true;
                System.out.println("UpdateThread Started");
            }
    
            public void run()
            {
                System.out.println("UpdateThread running");
                for(;;)
                {
                    while( !_start && !_stop)
                    {
                        try {
                            sleep(TIMEOUT);
                            System.out.println("UpdateThread sleeping");
                        } catch (InterruptedException e) {
                            System.err.println(e.toString());
                        }
                    }
    
                    if (_stop)
                        return;
    
                    UiApplication.getUiApplication().invokeLater(new Runnable() {
                        public void run() {
                            _field.setText("" + System.currentTimeMillis());
                        }
                    });
                    System.out.println("invoked");
                }
            }
        }
    
    }
    

    If you go to substitute Thread.start, then call super.start () somewhere in there, like after your DD.

  • Background switch detected for MyApp (24) who doesn't have the tunnels open - defocus is NOT called

    I get the error "background switch detected for MyApp (24) who doesn't have the tunnels open - defocus is NOT called. Then the Simulator freezes and I can't do anything. Tried to debug but no luck!

    My application has two other entry points implemented from article http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800738/800901/How_To _...

    Please see code below

    public class UserInterface extends UiApplication{
    
        public static void main(String[] args){
    
            if ((args != null) && (args.length > 0) && (0==StringUtilities.compareToIgnoreCase(args[0].toString(), "GUI"))){
    
                UserInterface theApp = new UserInterface();
                theApp.enterEventDispatcher();
            }
            else {
                try
                {
                    Wait();
                                SetTimer();
                    ManageResources mg = new ManageResources();
                    System.exit(0);
    
                }
                catch (Exception ex)
                {
                    if (RuntimeConfig.DEBUG)
                    {
                        System.out.println("UserInterface, main:  " + ex);
                    }
                }
            }
        }
        public UserInterface() {
            //  DialogDisplay dd = new DialogDisplay();
            pushScreen(new UserInterfaceScreen(this));
        }
    

    I also had this problem, the cause is that my computer is behind a proxy firewall so that MDS services Simulator cannot connect to internet, I added the following lines in the file rimpublic.property in the directory "Eclipse\plugins\net.rim.eide.componentpack4.7.0_4.7.0.46\components\MDS\config".

    application.handler.http.proxyEnabled = true
    application.handler.http.proxyHost = proxyserver
    application.handler.http.proxyPort = 8080

    These lines must be placed in the [MANAGER HTTP] section.

    It will be useful.

  • EchoLink error-om 1 port is not availible use your push to talk button

    On my program of the Echolink each time I open I will give me an error; com port 1 is not availible use your push to talk button!
    How activate this... also the media cannot. Thank you!

    Moved from feedback

    Original title: software

    Hi Kane,

    Thanks for the reply.

    What version of Windows 7 are you using?

    I suggest you to install the application in Windows XP compatibility mode, this might help you solve the problem.

    Make older programs run in this version of Windows.

    http://Windows.Microsoft.com/en-us/Windows7/make-older-programs-run-in-this-version-of-Windows

    I hope this helps.

Maybe you are looking for