同一个midlet下不同canvas切换实例代码

    备份作参考,注意切换时的白屏等问题

 

public void switchCanvas(int id) {
        curCanvasId = id;
        if (curCanvasId == 1) {
            canvas_1 = new ScreenManager_1();
            dataManager = new DataManager_1(null/** this.getAppProperty("MIDlet-Version"* )*/);
            dataManager.load();

            // reset SPAC system
            if (DeviceConstants_1.SPAC_ENABLE) {
                SpacFile_1.resetImageCache();
            }
            // comment this before making iphone build
            // canvas_1.setFullScreenMode(true);
            Display.getDisplay(this).setCurrent(canvas_1);
            gcWait(100);
            canvas_1.start();
            if (DeviceConstants_1.CALL_SHOW_NOTIFY_ON_STARTAPP)
            {
                if (canvas_1 != null)
                {
                    canvas_1.showNotify();
                }
            }
            cleanMenuCanvas();
        } else if (curCanvasId == 2) {
            canvas_2 = new GameCanvas();
            Display.getDisplay(this).setCurrent(canvas_2);
            gcWait(100);
            if (LicenseHandler.LICENSE_HANDLER_SUPPORTED) {
                if (canvas_2.isRecurring(this) && !validated
                        && canvas_2.validateLicense(this, canvas_2)) {
                    validated = true;
                    Display.getDisplay(this).setCurrent(canvas_2);
                    canvas_2.start();
                } else if (!canvas_2.isRecurring(this)) {
                    Display.getDisplay(this).setCurrent(canvas_2);
                    canvas_2.start();
                }
            } else {
                canvas_2.start();
            }
            cleanMenuCanvas();
        }
    }

posted @ 2010-05-20 16:22  MXi4oyu  阅读(155)  评论(0编辑  收藏  举报