gwt - When is Widget OnUnload() is called? -
can please tell me when widget's onunload() called?
i tried override however, never been accessed. best way unload composite, using rootpanel.get("dev1").clear();
if want stop timer when leave page use closehandler. handler called while page closing , refreshing.
window.addclosehandler(new closehandler<window>() { @override public void onclose(closeevent<window> event) { timer.cancel(); } }); if want stop timer when clearing vertical panel use removefromparent.
this overridden method called when widget removed form parent.
private timer timer = null; /* * entry point method. */ public void onmoduleload() { final label label = new label("hello ") { @override public void removefromparent() { if (timer != null && this.isattached()) { timer.cancel(); system.out.println("timer stopped"); } super.removefromparent(); } }; timer = new timer() { @override public void run() { label.settext("hello " + (int) (math.random() * 100)); } }; timer.schedulerepeating(500); final verticalpanel verticalpanel = new verticalpanel(); verticalpanel.add(label); button button = new button("remove label"); button.addclickhandler(new clickhandler() { @override public void onclick(clickevent event) { label.removefromparent(); } }); verticalpanel.add(button); rootpanel.get().add(verticalpanel); } as per comments try below code clear method overridden verticalpanel.
final verticalpanel verticalpanel = new verticalpanel(){ @override public void clear(){ if(this.isattached()){ timer.cancel(); } super.clear(); } }; verticalpanel.getelement().setid("div1");
Comments
Post a Comment