2012-03-26 106 views
0

我做了以下,但它并不总是工作。它的作品,如果我手动启动应用程序,然后关闭设备,并打开设备我的应用程序启动。但在关闭设备之前,如果我切换到另一个应用程序,然后打开设备,“我的应用程序没有启动”。如何在设备上启动黑莓应用程序打开/打开

import net.rim.device.api.system.ApplicationDescriptor; 
import net.rim.device.api.system.ApplicationManager; 
import net.rim.device.api.ui.UiApplication; 

public class MyApp extends UiApplication 
{ 
public static void main(String args[]) { 

    if (args.length == 0) 
    {      
     ApplicationDescriptor current =   ApplicationDescriptor.currentApplicationDescriptor();    
     current.setPowerOnBehavior(ApplicationDescriptor.POWER_ON); 
     ApplicationManager manager = ApplicationManager.getApplicationManager(); 
     manager.scheduleApplication(current, System.currentTimeMillis() 
     + 2000, true); 
    } 
    System.out.println("restarted !"); 
    MyApp app = new MyApp(); 
    app.enterEventDispatcher(); 
} 

public MyApp() 
{   
    pushScreen(new MyScreen()); 
}  

}

Please help..........it's important...and thanks a lot. 

回答

1

我不是黑莓的专家,但我开发iOS和Android。打开/关闭开关或电源按钮很难链接到设备,按下时执行的操作被写入操作系统,而不是在应用程序中,我不认为您会找到此按钮的事件侦听器只要想象一下,如果应用程序可能会阻止手机关机(或...),则可能引发的安全问题

+0

是的,我同意你,但在Android我们可以做到这一点。应该有任何方式来做到这一点。 – Amrit 2012-03-26 12:54:17

+0

要做什么? – 2012-03-27 08:06:00

0

在您的Eclipse项目中,打开Blackberry_App_Description.xml文件,进入“Alternate Entry Points”选项卡,向列表中添加一个新条目,启用其“启动时自动运行”选项,并为其选择一个“应用参数”值。然后,您可以更新您的main()功能来查找该值时,应用程序运行:

public static void main(String args[]) 
{ 
    if ((args != null) && (args.length > 0) && (args[0].equals("MyValue"))) 
    {      
     System.out.println("System Startup !"); 
    } 

    MyApp app = new MyApp(); 
    app.enterEventDispatcher(); 
} 
+0

不够用! – Amrit 2012-03-27 06:20:20

+0

以什么方式?它总是在设备启动时运行代码,例如调度应用程序以运行。你究竟想要完成什么? – 2012-03-27 08:03:35

+0

我希望我的应用在每次启动时启动/切换设备,而不是重置设备。 – Amrit 2012-03-28 09:54:56

0

在Android其完全可能的。您只需使用正确的过滤器注册广播接收器并在清单上添加权限。

我觉得你不应该想到这个功能从按钮的角度和更多关于事件的观点来看。