Thanks for the contact.
If you are wanting to change the visible data range of your axes (presumably as data points are dynamically added or removed from your DataAdapters) you should not need to swap out any axes.
If you set the default range on your axis before data is loaded it should honour that range upon the redraw following the data load. The axes should also display the default range when the zoom is reset (for example when you zoom out beyond the internal limits, the chart will animate back to its default range).
Generally, if you wish to have the visible ranges update after your data has been loaded (as in the event of continuous dynamic updating) we recommend you use the requestCurrentDisplayedRange method on the Axis class:
http://www.shinobicontrols.com/docs/ShinobiControls/ShinobiChartsAndroid/1.5.1/Premium/Normal/apidocs/docs/reference/com/shinobicontrols/charts/Axis.html#requestCurrentDisplayedRange(T, T, boolean, boolean)
This method will honour the requested range providing that in doing so it does not violate any restrictions which have been placed on the visible ranges. For example, if allowPanningOutOfDefaultRange has been set to false, and you request a range beyond this, it will not be honoured.
I would recommend that rather than dynamically swapping out axes you use this approach. By using this approach you may well find that your concurrency problems evaporate.
I hope that this information helps you, if you need any further help please do not hesitate to get back in touch,
Thanks and kind regards,