【问题标题】:how to stop Browserfield requestContent() method when back to mainScreen on blackberry返回黑莓主屏幕时如何停止浏览器字段requestContent()方法
【发布时间】:2012-01-16 18:40:19
【问题描述】:

当我单击一个按钮时,在下一个屏幕中,我使用线程加载了 browserfield requestcontent()。

我已经添加了浏览器字段监听器。

当点击返回按钮时,我来到了第一个屏幕。但在后台, requestContent 正在执行。如何阻止它?

我在 onClose() 方法上写代码

public boolean onClose()
{
for(int i=0;i<=Thread.activeCount();i++)
    {
        if(Thread.currentThread().isAlive())
        {
            Thread.currentThread().interrupt();
        }   
    }
return super.onClose();
}

我的代码是。,

        new Thread(new Runnable() 
        {
            public void run() 
            {
                loadWebContent(path);
            }
        }).start();

private void loadWebContent(String path) 
{

    final VerticalFieldManager vfm = new VerticalFieldManager(HORIZONTAL_SCROLL|VERTICAL_SCROLL)
    {
        protected void sublayout(int maxWidth, int maxHeight)
        {

            super.sublayout(maxWidth, (Display.getHeight()-47));
            setExtent(maxWidth, (Display.getHeight()-47));

        }
    };

    BrowserFieldConfig myBrowserFieldConfig = new BrowserFieldConfig();

    myBrowserFieldConfig.setProperty(BrowserFieldConfig.NAVIGATION_MODE,BrowserFieldConfig.NAVIGATION_MODE_POINTER);


    myBrowserField = new BrowserField(myBrowserFieldConfig);


    myBrowserField.addListener(new BrowserFieldListener() 
    {
        public void documentLoaded(BrowserField browserField,Document document) throws Exception 
        {

            UiApplication.getApplication().invokeLater(new Runnable() 
            {
                public void run() 
                {
                    try
                    {


                        mainlayout.delete(spinner);
                        mainlayout.add(myBrowserField); 
                                                                                 myBrowserField.setZoomScale(1.0f);

                    }
                    catch (Exception e) 
                    {
                        System.out.println("++ "+e);
                    }
                }
            });
        }
    });

myBrowserField.requestContent(path);

}

请帮助如何在返回第一个屏幕时停止执行。

【问题讨论】:

    标签: blackberry


    【解决方案1】:

    我认为这就够了:

    public class LoadingScreen extends MainScreen 
    {   
      ButtonField click;
      String url;
      BrowserField browserField;
      public LoadingScreen() 
      {
            url="http://www.google.com";
        browserField=new BrowserField();        
        add(browserField);              
        browserField.requestContent(url);
      }
    }
    

    在 onClose 方法中:

    public boolean onClose() 
    {       
        return super.close();
    }
    

    如果您有任何疑问,请访问名为“黑莓和 java 知识共享中心”的聊天室,以澄清您和我们的疑问。

    【讨论】:

    • 直到页面加载到浏览器字段上。,我已经显示微调器。所以我添加了监听器方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多