【问题标题】:How to exit a blackberry application from another application programatically?如何以编程方式从另一个应用程序退出黑莓应用程序?
【发布时间】:2012-06-13 23:30:21
【问题描述】:

如何以编程方式从另一个应用程序中退出一个黑莓应用程序。

例如在黑莓中,我安装了两个应用程序,而不是我需要从第一个应用程序退出第二个应用程序或从我的应用程序退出到另一个应用程序。

【问题讨论】:

    标签: blackberry


    【解决方案1】:

    恕我直言,最简洁的方法是在您要关闭的应用程序中实现接口GlobalEventListener。然后,从调用应用程序发送一个包含您自己的一些自定义代码的全局事件,并让监听应用程序以受控方式自行关闭。

    例子:

    在您要关闭的应用中:

            public class YourCustomApp extends UiApplication implements GlobalEventListener {
                public static final long PID = <unique id for your app here>;
                public static final int CLOSE_APP_CODE = <your code here>;
    
                public void eventOccurred(long pid, int msgCode, int data1, Object object0, Object object1) {
                    if(pid == PID){
                        switch(msgCode){
                            case CLOSE_APP_CODE:
                                controlledClose(); //This method could be, System.exit(0) if no other action is required
                                break;
                        }
                    }
                }
    
            }
    

    在调用应用程序中:

            ApplicationManager.getApplicationManager().postGlobalEvent(PID, CLOSE_APP_CODE, 0, null, null);
    

    在第二个代码 sn-p 中,您应该将 int 和 long 代码替换为正确的代码。调用应用程序应传递正确的值。您还可以将代码放在库中,让两个应用程序都使用那里的值。确保 PID 在系统范围内是唯一的,这样它就不会与系统中的其他应用程序发生冲突。一个好的做法是使用应用程序的完整包名,然后在 Eclipse 插件中右键单击 ->“将字符串转换为长字符串”。

    更新:
    hacky 方法:您可以尝试使用 EventInjection 从您的应用程序中注入可以关闭某个应用程序的组合键。例如,相机应用程序在按下 ESC 键时会自行关闭。所以我们可以尝试用这行来关闭它:

    EventInjector.invokeEvent( new EventInjector.KeyCodeEvent(EventInjector.KeyCodeEvent.KEY_DOWN,Characters.ESCAPE, 0));
    

    这种方法极其不可靠。有时,它不起作用,您可能需要通过在每个注入事件后添加简短的Thread.sleep 调用来微调注入。或者您可能需要从 Ui 线程调用注入代码。

    记得为您的应用分配密钥注入权限。

    【讨论】:

    • 感谢您的重播,但我需要退出 Facebook、Twitter 等其他应用程序或相机、wifi 等默认黑莓应用程序,所以我如何退出或阻止或应用程序在 Background.other 应用程序上运行。不是我做的,我该如何管理。
    • 你不能这样做,因为它是由操作系统管理的。没有杀戮机制。最多,您可以将其他应用置于后台。
    • 感谢您的支持,您有事件注入的例子吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 2023-03-29
    • 2011-09-13
    • 2017-12-19
    • 2011-02-18
    相关资源
    最近更新 更多