旋转时刷新Android活动

旋转时刷新Android活动,第1张

概述我是一位经验丰富的.NET开发人员,但这是我的第一个Android应用程序,真让我发疯!这是一个倒数计时器,可以正常工作,但是当您旋转屏幕时,它会重新初始化活动,该活动会清零并停止倒数.这是我尝试过的;我摆脱了CountDownTimer对象,而是创建了活动内部的类,该类扩展了AsyncTask,因此它

我是一位经验丰富的.NET开发人员,但这是我的第一个Android应用程序,真让我发疯!

这是一个倒数计时器,可以正常工作,但是当您旋转屏幕时,它会重新初始化活动,该活动会清零并停止倒数.

这是我尝试过的;
我摆脱了CountDownTimer对象,而是创建了活动内部的类,该类扩展了AsyncTask,因此它在单独的线程上运行…无需更改.
我认为这是一个内部类,正在使用该活动进行重新初始化.

这是我接下来要尝试的;
我把这门课当作外部课程.该活动将其上下文传递给该类和onProgressUpdate& onPostExecute在上下文上运行公共功能以更新活动的UI.
同样,在您旋转它之前,它仍然可以正常工作… Aaaargh!

但是,我发现异步类仍在运行,但UI并未更改,因为(我认为)该活动现在具有与异步类所引用的上下文不同的上下文.

这就是我的所在.每种解决方案都解决了一个问题,创建另一个.
我需要以某种方式保持上下文还是我开始追逐自己的尾巴?

任何帮助将不胜感激!

助教.
巴里

解决方法:

However, I discovered that the async class is still running but the UI doesn’t change because (I think) the activity Now has a different context to the one the async class has reference to.

好猜.如果要保留计算的数据,则必须处理活动的生命周期,因为每当旋转设备时,都会重新创建活动,因此将调用onCreate()而不保存以前的计算数据.您必须重写onSaveInstanceState(Bundle savedInstanceState)和onRestoreInstanceState()才能保存计算.看一下Activity’s LifeCycle documentation和Reto Meier’s answer,我认为它将解决您的问题.

总结

以上是内存溢出为你收集整理的旋转时刷新Android活动全部内容,希望文章能够帮你解决旋转时刷新Android活动所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1089068.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存