Welcome!

Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

Java Development


Thank you for visiting the BlackBerry Support Community Forums.

BlackBerry will be closing the BlackBerry Support Community Forums Device Forums on April 1st (Developers, see below)

BlackBerry remains committed to providing excellent customer support to our customers. We are delighted to direct you to the CrackBerry Forums, a well-established and thorough support channel, for continued BlackBerry support. Please visit http://forums.crackberry.com or http://crackberry.com/ask. You can also continue to visit BlackBerry Support or the BlackBerry Knowledge Base for official support options available for your BlackBerry Smartphone.

"When we launched CrackBerry.com 10 years ago, we set out to make it a fun and useful destination where BlackBerry Smartphone owners could share their excitement and learn to unleash the full potential of their BlackBerry. A decade later, the CrackBerry community is as active and passionate as ever and I know our knowledgeable members and volunteers will be excited to welcome and assist more BlackBerry owners with their questions."

- Kevin Michaluk, Founder, CrackBerry.com

Developers, for more information about the BlackBerry Developer Community please review Join the Conversation on the BlackBerry Developer Community Forums found on Inside BlackBerry.


Reply
Highlighted
Regular Contributor
Posts: 83
Registered: ‎05-24-2011
My Device: Storm 9550
My Carrier: XXX

splash screen not getting pushed

Hi all,

 

I am trying to create a splash screen that run while my app makes an http request. The splash is not getting pushed in the pleaseShowandWait method, and is causing an illegal argument exception later when I try to pop that screen. Here is my code...any ideas?

 

package net.creative.core;

import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.BitmapField;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.system.Bitmap;
import net.rim.device.api.system.Characters;
import net.rim.device.api.system.KeyListener;
import net.rim.device.api.ui.Field;
import java.lang.Throwable;
import java.lang.RuntimeException;
import java.util.Timer;
import java.util.TimerTask;

public class SplashScreen extends MainScreen {

    //statics ------------------------------------------------------------------

    private static final Bitmap pic = Bitmap.getBitmapResource("Default@2x.png");
    private BitmapField picfield = new BitmapField(pic, Field.FIELD_HCENTER);
    

    private SplashScreen() {
        super();
        this.add(picfield);
    }

    public static void showScreenAndWait(final Runnable runThis) {
    	System.out.println("_________________ in the showScreenAndWait");
        final SplashScreen thisScreen = new SplashScreen();
        Thread threadToRun = new Thread() {
            public void run() {
                // First, display this screen

               UiApplication.getUiApplication().invokeLater(new Runnable() {
                   public void run() {
                	   UiApplication.getUiApplication().pushScreen(thisScreen);
                       System.out.println("-------the screen was just pushed");
                	   
                        
                  }
                });
                // Now run the code that must be executed in the Background
             //  UiApplication.getUiApplication().invokeLater(runThis);
               try {
                   runThis.run();
                   System.out.println("------the thread is running");
               } catch (Throwable t) {
                   t.printStackTrace();
                   throw new RuntimeException("Exception detected while waiting: " + t.toString());
               }
                // Now dismiss this screen
                UiApplication.getUiApplication().invokeLater(new Runnable() {
                   public void run() {
                        UiApplication.getUiApplication().popScreen(thisScreen);
                        System.out.println("-----the screen was just popped");
                    }
                });
            }
        };
        threadToRun.start();
    }

}

 

Developer
Posts: 285
Registered: ‎08-06-2010
My Device: Z10

Re: splash screen not getting pushed

A better way to implement a splash screen is to have the splash screen be the initial screen that the app loads, have it start the http request and listen to the http request. Once the http request finishes, have it notify the listener and then push the following screen on to the stack. 



Follow me on twitter @RileyGB - https://twitter.com/RileyGB
View my BB10 OpenSource projects - https://github.com/RileyGB/BlackBerry10-Samples