Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从第二个活动返回时计时器暂停时重新创建Textview_Java_Android - Fatal编程技术网

Java 从第二个活动返回时计时器暂停时重新创建Textview

Java 从第二个活动返回时计时器暂停时重新创建Textview,java,android,Java,Android,关于android Textview,我有一个奇怪的问题。我有一个运行在runnable上的计时器,带有一个切换按钮,用于启动和暂停/停止主活动中的计时器。我还有其他活动要做。为了在返回主活动时不重新创建textview的新实例,我已将其声明为静态。当计时器运行时,我可以在这两个活动之间来回移动,文本视图也会随之更新。但是,如果我暂停计时器,然后进入下一个活动并返回到主屏幕,则textview将重置。为什么会这样?如果它在运行时起作用,那么它肯定会在暂停时起作用。当您切换活动时,如果Androi

关于android Textview,我有一个奇怪的问题。我有一个运行在runnable上的计时器,带有一个切换按钮,用于启动和暂停/停止主活动中的计时器。我还有其他活动要做。为了在返回主活动时不重新创建textview的新实例,我已将其声明为静态。当计时器运行时,我可以在这两个活动之间来回移动,文本视图也会随之更新。但是,如果我暂停计时器,然后进入下一个活动并返回到主屏幕,则textview将重置。为什么会这样?如果它在运行时起作用,那么它肯定会在暂停时起作用。

当您切换活动时,如果Android内存不足,旧活动可能会被垃圾收集。当计时器运行时,Android会对其进行优先级排序,而不是将其从内存中删除。请尝试在内存更多的设备上测试,并报告在计时器暂停的情况下切换活动时是否每次都重置textview。不幸的是,我手头没有其他设备。如果这是内存问题,那么这可能是设备之间的问题。假设这就是问题所在,是否有办法强制它保留数据。或者,是否有更好的方法来保留textview实例。我已经尝试过SaveInstanceState,但它只适用于屏幕旋转,而不适用于活动之间。每当您切换活动时,您应该保留希望用户将来能够访问的任何数据。您可以通过将TextView值保存在SharePref或数据库中来实现这一点。我首选的方法是单例。如果可能,减少应用程序中的活动数量,改用片段。这样,您就可以保持在相同的活动中,并且可以轻松地在片段之间共享诸如计时器之类的元素。希望这有帮助!这听起来有点过分了,尤其是对于像我这样的新手来说。我所做的是创建一些静态,然后使用onPause和onResume事件来相应地设置和重置内容。这真的很简单,工作得也很好。简单的解决方案总是最好的,因为花哨的方法在以后调试时会很痛苦,但那是另一回事了。无论如何,谢谢你的建议。我很高兴你设法解决了你的问题!我自己也不太先进,但你是对的,越简单越好!切换活动时,如果Android内存不足,旧活动可能会被垃圾收集。当计时器运行时,Android会对其进行优先级排序,而不是将其从内存中删除。请尝试在内存更多的设备上测试,并报告在计时器暂停的情况下切换活动时是否每次都重置textview。不幸的是,我手头没有其他设备。如果这是内存问题,那么这可能是设备之间的问题。假设这就是问题所在,是否有办法强制它保留数据。或者,是否有更好的方法来保留textview实例。我已经尝试过SaveInstanceState,但它只适用于屏幕旋转,而不适用于活动之间。每当您切换活动时,您应该保留希望用户将来能够访问的任何数据。您可以通过将TextView值保存在SharePref或数据库中来实现这一点。我首选的方法是单例。如果可能,减少应用程序中的活动数量,改用片段。这样,您就可以保持在相同的活动中,并且可以轻松地在片段之间共享诸如计时器之类的元素。希望这有帮助!这听起来有点过分了,尤其是对于像我这样的新手来说。我所做的是创建一些静态,然后使用onPause和onResume事件来相应地设置和重置内容。这真的很简单,工作得也很好。简单的解决方案总是最好的,因为花哨的方法在以后调试时会很痛苦,但那是另一回事了。无论如何,谢谢你的建议。我很高兴你设法解决了你的问题!我自己也不太先进,但你是对的,越简单越好!