我的應用程序包含大量的圖像。所以加載應用程序需要一些時間。我想在應用程序正在加載時顯示加載屏幕。這怎麼可能 ?黑莓 - 應用程序加載屏幕
2
A
回答
8
下面是一個示例應用程序,該應用程序骷髏您要做的事情。基本上,你推動的初始屏幕是一個加載屏幕。在最初的啓動過程中,你需要啓動一個新的線程,執行你的加載,然後使用invokeLater來1)確保你在事件調度程序中和2)推動一個新的屏幕 - 或者在這個例子中對話框 - 屏幕上讓用戶離開加載屏幕。
下面的代碼:
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.component.LabelField;
/**
* Just a test app.
*/
public class TestAppMain extends UiApplication
{
/**
* Default Constructor.
*/
private TestAppMain() {
pushScreen(new AppScreen(this));
}
/**
* App entry point.
* @param args Arguments.
*/
public static void main(String[] args) {
TestAppMain app = new TestAppMain();
app.enterEventDispatcher();
}
/**
* Main application screen.
*/
private static class AppScreen extends MainScreen
{
UiApplication _app;
/**
* Default constructor.
*/
public AppScreen(UiApplication app) {
// Note: This screen just says "Loading...", but you could
// add a loading animation.
_app = app;
LabelField title = new LabelField("App Name",
LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
setTitle(title);
LabelField loading = new LabelField("Loading...",
LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
add(loading);
// Queue up the loading process.
startLoading();
}
/**
* Create the loading thread. Make sure to invoke later as you will
* need to push a screen or show a dialog after the loading is complete, eventhough
* you are creating the thread before the app is in the event dispatcher.
*/
public void startLoading() {
Thread loadThread = new Thread() {
public void run() {
// Make sure to invokeLater to avoid problems with the event thread.
try{
// Simulate loading time
Thread.sleep(5000);
} catch(java.lang.InterruptedException e){}
// TODO - Add loading logic here.
_app.invokeLater(new Runnable() {
public void run() {
// This represents the next step after loading. This just shows
// a dialog, but you could push the applications main menu screen.
Dialog.alert("Load Complete");
}
});
}
};
loadThread.start();
}
}
}
1
HorizontalFieldManager popHF = new HorizontalFieldManager();
popHF.add(new CustomLabelField("Pls wait..."));
final PopupScreen waitScreen = new PopupScreen(popHF);
new Thread()
{
public void run()
{
synchronized (UiApplication.getEventLock())
{
UiApplication.getUiApplication().pushScreen(waitScreen);
}
//Here Some Network Call
synchronized (UiApplication.getEventLock())
{
UiApplication.getUiApplication().popScreen(waitScreen);
}
}
}.start();
+1
對於新來的平臺來說,這是一個不錯的例子。謝謝。 – 2013-09-06 12:31:12
相關問題
- 1. 加載屏幕黑莓
- 2. 黑莓加載屏幕:按回到去加載屏幕
- 3. 黑莓中的加載屏幕
- 4. 黑莓 - 屏幕底部的加載欄
- 5. 添加垂直滾動條在黑莓應用程序屏幕
- 6. 在黑莓手機上加載黑莓應用程序
- 7. Phoneagap編譯應用程序黑屏後加載屏幕
- 8. 黑莓:InCall屏幕
- 9. iPhone應用程序加載屏幕
- 10. 黑莓 - 如何顯示在應用程序屏幕
- 11. 安卓黑莓Playbook應用程序屏幕尺寸混亂
- 12. 白色屏幕運行sencha +黑莓網絡應用程序
- 13. 在黑莓上創建應用程序信息/幫助屏幕
- 14. 黑莓應用程序推一個新的屏幕
- 15. 在應用程序中的黑莓選項屏幕
- 16. 黑莓主屏幕轉換
- 17. 黑莓屏幕導航
- 18. 黑莓屏幕導航
- 19. 黑莓 - 等待屏幕
- 20. 黑莓部分屏幕MapView
- 21. 黑莓連接屏幕
- 22. Android應用程序加載屏幕
- 23. Shazam應用程序像加載屏幕
- 24. iOS應用程序的加載屏幕
- 25. 加載屏幕 - iPhone應用程序
- 26. 應用程序的黑色屏幕?
- 27. 黑莓應用程序在
- 28. 黑莓 - 加載/等待屏幕與動畫
- 29. 黑莓問題凍結屏幕和緩慢加載
- 30. 用新數據更新黑莓屏幕
http://stackoverflow.com/search?q=splash+screen – Groo 2009-10-01 11:17:46