我正在开发一个Android平板电脑应用程序,我需要实现屏幕方向(横向和纵向).当屏幕方向改变时,片段asyntactask再次重启. (有时应用程序崩溃)我需要停止重新启动asynctask并再次请求数据.想要将现有的Json数据加载到新屏幕中.
任何帮助欣赏.
approch:androID:configChanges =“keyboardHIDden | orIEntation | screenSize”因为我正在使用片段类而无法正常工作.
解决方法:
你可能会发现一些黑客攻击(包括静默配置更改或保留实例)以某种方式让它工作,但实际上是AsyncTask
s are evil,你应该尽可能地保持它的大部分时间.
如果您当前的AsyncTask的工作是在将数据显示在Fragment中之前从网络加载一些数据,我建议使用AsyncTaskLoader
.javadoc中的示例应该让您了解如何实现它.
这将允许网络请求在您旋转时继续运行,只有在准备好处理它时才会通知UI(即LoaderManager.LoaderCallbacks)结果(例如,在旋转时不会),并且还会缓存结果这样您每次需要数据时都不会重新发出网络请求.
有许多第三方库试图解决这个非常常见的问题,而且Loaders也有它们的复杂性,但是如果我正确理解你的用例,它应该就是你需要的.
不要忘记,无论您选择何种解决方案,都必须考虑在加载数据之前,期间和之后发生的轮换(活动销毁/重新创建).
总结以上是内存溢出为你收集整理的android – 避免在屏幕方向更改时重新启动片段asynctask全部内容,希望文章能够帮你解决android – 避免在屏幕方向更改时重新启动片段asynctask所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)