我的应用程序包含几个具有通用 View
的 Activity (一些 Buttons
和一个 TextView
)。我创建了通用的 View
并在 extends Activity
的抽象类中处理了操作,我所有的 Activity 都扩展了我的抽象类。
我的问题是当我在 Activity 之间切换并更改 Button
上的文本时。例如,当我按下“后退”按钮时,上一个 Activity
在 Button
上没有“更新”文本。我在我的抽象类 onActivityResult()
方法中添加并更改了所有 Activity 以打开从 startActivity 到 startActivityForResult 的新 Activity 。现在一切正常,但我发现还有 onResume()
方法可以解决我的第一个问题。
所以我的问题是:什么更好?甚至更准确:处理我的问题的正确方法是什么? 谢谢
最佳答案
由于您不需要返回任何数据,而且 Button
应该具有的文本是在每次 Activity
打开时调用的函数中获得的,只需使用 onResume()
就足够了。
onResume()
在每次 Activity
运行时被调用,在 onCreate()
运行之后,但它也会在每次Activity
来到前台(例如,通过点击它前面的 Activity 的后退按钮)。
what is the right way to handle my problem?
因此,虽然您可以使用其中任何一个,但此处不需要 startActivityForResult()
。它只会增加不必要的代码和开销(即使我怀疑您的用户会看到差异)。只需将检查按钮需要的文本的方法添加到 onResume()
。
当您确实想要从调用的 Activity 返回数据并根据该数据采取特定操作时,I've got an example in this answer
关于java - 普通view切换activity,onResume和onActivityResult的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27928569/