guicontroller.java

来自「J2ME程序实现开机自启动的简单例子源码。」· Java 代码 · 共 547 行 · 第 1/2 页

JAVA
547
字号
    	    }
			case EventID.EVENT_DISPLAYMMS_BACK:
    	    case EventID.EVENT_REGISTER_BACK: 
    	    {
				/*
				 * 初始化功能主菜单列表,并显示它
				 */
				if(m_mainMenuList == null)
				{
					m_mainMenuList = new MainMenuList(
							String.valueOf(CommandResources.getChars(
									CommandResources.TXT_T_APP)), this);
				}
				setCurrent(m_mainMenuList);
    	    	break;
    	    }
    	    case EventID.EVENT_REGISTER_REG:
    	    {
				/*
				 * 要注册自动启动功能;
				 * 首先存储当前设置页面上的所有参数进入RMS
				 */
				String port = (String)args[0];
				
    	        m_AppSettings.save(port);
				
				/*
				 * 开始注册
				 */
				// 匿名内部Thread,由他来完成注册Push Registry的任务,当然也可以通过静态注册。 
	            Thread registerThread = new Thread()
	            { 
					private String m_sRegClassName = "";
					public void setClassName(String className){
						m_sRegClassName = className;
					}
					public void run(){  
						System.out.println("Try push registry for:" +
								m_sRegClassName);
						
						/*
						 * 构造出要注册的URL,类似于"sms://:8341"
						 */
						SMSSettings oAppSettings 
						= SMSSettings.getInstance();
						String smsprotocolPrefix = 
							String.valueOf(CommandResources.getChars(
									CommandResources.TXT_T_DEFAULT_SMS_PORTOCOL));
						String port = String.valueOf(oAppSettings.getSMSPort());
						String connURL = smsprotocolPrefix
							+ port;
						
						try {
							
							String MIDletStr = "com.ultrapower.midlet.MIMEReceiver";
							String	FilterStr = "*";
							PushRegistry.registerConnection(connURL,
									MIDletStr, FilterStr);
						}
						catch(IllegalArgumentException iae)
						{
							iae.printStackTrace();
							setCurrent(
									new Alert(
											"注册Push Registry错误", 
											connURL + "不被是认为合法的连接语法!"
											+ iae.getMessage() +
											"/" + iae.getClass(),
											null, AlertType.ERROR),
									(Displayable)m_registerForm);
						}
						catch ( ClassNotFoundException cnf ) {
							cnf.printStackTrace();
							setCurrent(
								new Alert(
										"注册Push Registry错误", 
										"可能是你的手机不支持!"
										+ cnf.getMessage() +
										"/" + cnf.getClass(),
										null, AlertType.ERROR),
								(Displayable)m_registerForm);
						} catch ( IOException ioe ) {
							ioe.printStackTrace();
							setCurrent(
								new Alert(
										"注册Push Registry错误", 
										"可能本连接已经被其他应用注册了!"
										+ ioe.getMessage() +
										"/" + ioe.getClass(), null, AlertType.ERROR),
								(Displayable)m_registerForm);
						}
						catch(SecurityException  se)
						{
							se.printStackTrace();
							setCurrent(
									new Alert(
											"注册Push Registry错误", 
											"可能没有权限注册!"
											+ se.getMessage() +
											"/" + se.getClass(), null, AlertType.ERROR),
									(Displayable)m_registerForm);
						}
						catch(Exception exc)
						{
							exc.printStackTrace();
						}
						
						System.out.println("Succ push registry!");
					}
				};
				registerThread.start(); 
				setCurrent(m_registerForm);
				
    	        break;
    	    }
			case EventID.EVENT_REGISTER_UNREG:
    	    {
				/*
				 * 要反注册自动启动功能;
				 * 首先存储当前设置页面上的所有参数进入RMS
				 */
				String port = (String)args[0];
				
    	        m_AppSettings.save(port);
				
				/*
				 * 开始反注册
				 */

				// 匿名内部Thread,由他来完成注册Push Registry的任务,当然也可以通过静态注册。 
	            Thread registerThread = new Thread()
	            { 
					public void run(){  
						System.out.println("Try unregister push registry for:");
						
						/*
						 * 构造出要注册的URL
						 */
						SMSSettings oAppSettings 
						= SMSSettings.getInstance();
						String smsprotocolPrefix = 
							String.valueOf(CommandResources.getChars(
									CommandResources.TXT_T_DEFAULT_SMS_PORTOCOL));
						String port = String.valueOf(oAppSettings.getSMSPort());
						String connURL = smsprotocolPrefix
							+ port;
						
						try {
							// 类似于"sms://:8341"
							PushRegistry.unregisterConnection(connURL);
						}
						catch(IllegalArgumentException iae)
						{
							iae.printStackTrace();
							setCurrent(
									new Alert(
											"反注册Push Registry错误", 
											connURL + "不被是认为合法的连接语法!"
											+ iae.getMessage() +
											"/" + iae.getClass(),
											null, AlertType.ERROR),
									(Displayable)m_registerForm);
						}
						catch(SecurityException  se)
						{
							se.printStackTrace();
							setCurrent(
									new Alert(
											"反注册Push Registry错误", 
											"可能没有权限注册!"
											+ se.getMessage() +
											"/" + se.getClass(), null, AlertType.ERROR),
									(Displayable)m_registerForm);
						}
						catch(Exception exc)
						{
							exc.printStackTrace();
						}
						
						System.out.println("Succ unregister push registry!");
					}
				};
				registerThread.start(); 
				setCurrent(m_registerForm);
				
    	        break;
    	    }
    	    case EventID.EVENT_ABOUT:
    	    {
				if(m_about == null)
				{
					m_about = new About(
							String.valueOf(CommandResources.getChars(
									CommandResources.TXT_T_ABOUT)));
				}
    	        setCurrent(m_about);
    	        break;
    	    }
			case EventID.EVENT_DISPLAYMMS_FORM:
			{
				if(m_displaymmsForm == null)
				{
					m_displaymmsForm = new FormMsgReceive(
							String.valueOf(CommandResources.getChars(
									CommandResources.TXT_T_DISPLAYMMS)),
									this);
				}
				setCurrent(m_displaymmsForm);
				break;
			}
			case EventID.EVENT_DISPLAYMMS_ERROR:
			{
				m_displaymmsForm.failSend();
				// 发送短信时出错了
				setCurrent(
						new Alert(
								String.valueOf(
										CommandResources.getChars(
												CommandResources.TXT_T_DISPLAYMMS)), 
										String.valueOf(
												CommandResources.getChars(
														CommandResources.TXT_PARSEMMS_ERROR_MSG))
												+ m_sParseMMSException, null, AlertType.ERROR),
						(Displayable)m_displaymmsForm);
				break;
			}
			case EventID.EVENT_DISPLAYMMS_SUCC:
			{
				/*
				 * ThreadMMSHandler通知控制器已经解析出了消息
				 */
				String sMsg = (String)args[0];
				String sMobile = (String)args[1];
				// 显示短信成功了
				m_displaymmsForm.succReceive(sMsg, sMobile);
				// 
				setCurrent(m_displaymmsForm);
				break;
			}
			case EventID.EVENT_LISTCONNECTIONS_ERR:
			{
				/*
				 * 初始化功能主菜单列表,并显示它
				 */
				if(m_mainMenuList == null)
				{
					m_mainMenuList = new MainMenuList(
							String.valueOf(CommandResources.getChars(
									CommandResources.TXT_T_APP)), this);
				}
				/*
				 * 为了以防万一,一旦初始化的时候PushRegistry.listConnections出错,
				 * 怀疑可能是用户手机不支持MIDP2.0。那么必须将这个情况通告用户。
				 */
				setCurrent(
						new Alert(
								String.valueOf(
										CommandResources.getChars(
												CommandResources.TXT_T_DISPLAYMMS)), 
										String.valueOf(
												CommandResources.getChars(
														CommandResources.TXT_PARSEMMS_ERROR_MSG))
												+ m_sParseMMSException, null, AlertType.ERROR),
						(Displayable)m_mainMenuList);
				break;
			}
         	default:
         	    break;
        }
    }
    
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?