想在Blackberry中将我的应用程序作为服务运行

时间:2011-09-20 05:48:29

标签: blackberry

我有一个没有UI的应用程序。当我的手机启动时,该应用程序应该自动开始运行。这意味着无需单击任何图标。应用程序将像服务一样启动。我怎样才能做到这一点?请回复。

这是我的代码......

公共类BlockApplication扩展Application {     int mForegroundProcessId = -1;

public BlockApplication() {
    Timer timer = new Timer();
    timer.schedule(mCheckForeground, 1000, 1);                       
}


public static void main(String[] args) {
    BlockApplication app = new BlockApplication();
    app.enterEventDispatcher();
}


TimerTask mCheckForeground = new TimerTask() {
    public void run() {
        int id = getForegroungProcessID();
        if(id != mForegroundProcessId)
        {
            mForegroundProcessId = id;
            String name = getAppNameByProcessId(mForegroundProcessId);
                KeyEvent inject = new KeyEvent(KeyEvent.KEY_DOWN, Characters.ESCAPE, 0);
       inject.post();
                }
    };
};


private int getForegroungProcessID() 
{
    return ApplicationManager.getApplicationManager().getForegroundProcessId();
}


private String getAppNameByProcessId(int id) 
{
    String result = null;
    ApplicationManager appMan = ApplicationManager.getApplicationManager();
    ApplicationDescriptor appDes[] = appMan.getVisibleApplications();
    for (int i = 0; i < appDes.length; i++) 
    {
        if (appMan.getProcessId(appDes[i]) == id) 
        {
            result = appDes[i].getLocalizedName();
            break;
        }
    }
    return result;
}

}

提前致谢。

2 个答案:

答案 0 :(得分:0)

如果您使用Blackberry Ant Tools

http://bb-ant-tools.sourceforge.net/

在jdp标签中,设置这些属性...... runonstartup = “真” startuptier = “7”

这将安排您的应用在设备重置时启动。 如果您使用Eclipse插件,那么在某处应该有类似的配置。

答案 1 :(得分:0)

应用程序需要是一个系统模块。使用Eclipse插件,您应该转到App Descriptor并选中“不要在BlackBerry主屏幕上显示应用程序图标”框。

使用BB Ant工具,您应该将jdp标记中的systemmodule属性设置为true。