Android - Activity 与 View

标签 android

我正在开发一个 Android 应用程序,它有多个屏幕,用户需要在这些屏幕之间导航,我很好奇在这些屏幕之间切换时的最佳做法是什么。我在为每个屏幕创建一个新 Activity 和简单地更改 View (setContentView(R.layout.whatever)) 之间左右为难。所有屏幕都至少共享一些变量值,因此我倾向于更改 View 和使用类级变量,但我担心单个 Activity 可能会变得非常大,并且会混淆单个文件中多个屏幕的逻辑。我希望保持代码干净和分离,但如果不需要的话,我也不想在 View 之间传递多个变量。

作为 Android 开发的新手,我希望社区中一些更有经验的成员可以分享他们的想法,让我知道如何最好地处理它。

谢谢!

注意: 我不打算使用取景器。我的想法是使用按钮单击事件,然后调用 setContentView() 为我接下来要显示的页面创建一个新 View 。

示例:我的应用程序使用 R.layout.main 作为它的 View 启动。用户单击“帮助”按钮,它会调用一个运行 setContentView(R.layout.help) 的方法;显示帮助屏幕而不是切换到帮助 Activity 。

最佳答案

您应该为每个屏幕使用一个 Activity ,因为这将充分利用框架,并允许操作系统在事情变得紧张时有选择地关闭屏幕。

如果您只有一项 Activity 并且资源紧张,则操作系统有两种选择; kill everything 或 kill nothing,如果用户没有使用你的应用程序,那么它很可能会杀死所有东西。

如果您使用每个屏幕的 Activity ,操作系统可以关闭用户一段时间未访问的一些屏幕,同时仍然允许其他屏幕保持 Activity 状态,从而允许用户快速返回到它们。

至于共享变量和值,如果它们被广泛共享,您可以使用 SQLite 数据库或 SharedPreferences 存储来传递它们,或者如果它们仅在一个屏幕到下一个屏幕之间使用,则使用 Intent 中的 putExtra 方法。

关于Android - Activity 与 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3208445/

相关文章:

java - 拍照后在onActivityResult中获取图像Uri?

android - 无法在 Android 设备上查看 PDF(带有嵌入式 swf)

java - 如何从 Android 按钮单击运行单独的应用程序

android - 类 fragment 膨胀错误(使用谷歌地图 android api v2)

java - 滑动手势非常慢,...如何加快 Android 中的滑动手势?

android - AdMob Android 在程序不可见时请求广告

Android Auto build with eclipse broken

android - Android 4 或更高版本上的 HTTP 连接出错?

java - 在 Android Studio 上同步新项目时出现 Firebase 错误(ASCII 错误)

android - 在命令行中探索 Android 嵌入式 SQLite