因此,在编写了一段时间的 android 应用程序(1 个上传到市场,有 3k+ 活跃安装和 4,7 评级)之后,我开始想知道,我怎样才能让我的应用程序更加出色。我意识到,我无法真正添加任何真正新的、改变世界的功能,所以我开始检查性能,以及如何优化几乎所有内容,如何找到最佳的 cpu/内存使用率等等。
无论如何,我发现 onCreate 会在旋转屏幕的情况下运行,这很符合逻辑,但是有一些(大)计算,我肯定不需要在每次旋转后重做。其中之一是遍历具有 6500 行、有 4 列的 csv,其中 2 总是包含一些数据,其中 2 并不总是。带有数据的 2 列将用于自动完成适配器,另外 2 列对于功能是可选的,但仍需要初始化。目前,这是在 asynctask 中运行,在 onCreate 结束时触发,在我的 HTC Desire S 上大约需要 3 秒,它有一个相当好的 CPU,所以预算较低的设备在每次旋转后会有更长的初始化时间,即当然不是我想要的……它不会使 UI 崩溃,但在这几秒钟结束之前不会有任何自动完成功能。
SO:我的问题是,我可以在一些单独的方法中执行此操作,例如构造函数(如在标准 Java 中),还是因为活动的特殊生命周期,这是一种不好的做法?我的意思是,我以“构造函数”运行的方式实例化我的活动,然后,我的 onCreate 将运行。在旋转的情况下,我的“构造函数”不会再次运行,但 onCreate 会。稳定仍将是我的 nr1 目标。或者,有什么好的方法可以做到这一点?正是为此而创建的东西,我不知道?我真的很想在这件事上改进很多,我真的很感激这方面的一些帮助,最好是有这方面经验的人,但欢迎任何帮助!:)
例如,如果我想以这种方式创建一个新活动,我会这样做:
new MyActivity(some parameters);
所以构造函数运行,结束如下:
startActivity(new Intent(context, MyActivity.class));
所以这样,构造函数运行,我的变量将被初始化(不连接到任何视图等),之后,我的活动可以随时运行它的 onCreate 变量。
如果我的语法错误,请原谅我,我只是快速输入它:)