- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个长度为 1,000,000 的短裤数组,并且我需要在我的应用程序启动时和 Activity 线程超时之前将其生成或加载到 RAM 中(最好在几秒钟内)。
然后我可以在运行时快速访问它的条目。
您将如何从文件中将其加载到内存中?从txt文件加载?来自 SQLite 文件(在单个表中有两个整数列,一个用于索引,另一个用于值)?
Activity 是否有可能在被视为超时之前请求更长的空闲时间?
最佳答案
您的问题的解决方案是生成一个线程来读取文件。这将是一个高级概述,因此您可以追踪相关项目。它将首先处理第 2 项,然后是第 1 项。
首先,您需要让长时间运行的处理脱离 UI 线程。 “空闲”时间响应问题(应用程序未响应)是因为您正在占用执行其他操作所需的 UI 线程。线程不能同时读取文件和绘制屏幕(至少不好)。
我发现最简单的方法是使用 Java ExecutorServices。您要做的是将读取文件或数据库的逻辑打包到 java Runnable 或 Callable 中,然后使用 ExecutorService 运行它。执行程序将负责启动线程并在不再使用这些资源时回收这些资源。
需要注意的一个关键问题是,一旦创建了另一个线程,更新 UI 时需要小心。因为 ui 对象不是线程安全的,您只能从 UI 线程更新 ui(常识,对吧?)。如果您在 Activity 中,您可以通过调用 runOnUiThread() 来执行此操作,或者您可以在 UI 线程首先调用的 ACtivity 方法之一中创建您自己的处理程序。
Sam Dufel 说:
Hmm... You could really pack that down if you could come with a format to replace all the dummy entries with just a count. Eg, 10,000 zeros get replaced by a pair of flag bytes followed by 10,000
此外,您可能会看到通过生成多个读取线程来提高速度。如果您可以将文件分成两个文件,允许两个线程同时执行,您会看到显着的加速(取决于您需要对数据执行的其他操作)。从文件加载数据的一种分而治之。粗略的谷歌搜索应该会为您提供有关如何从文件加载短裤的信息。根据您的规范,您绝对应该考虑使用二进制格式。
关于android - 在 Android 中加载大量短裤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4732170/
我正在开发一个需要能够平均三个数字的 Facebook 应用程序。但是,它总是返回 0 作为答案。这是我的代码: $y = 100; $n = 250; $m = 300; $number = ($y
我只是无法弄清楚这一点,也找不到任何对我来说有意义的类似问题。我的问题:我从数据库中提取记录,并在我的网页上以每个面板 12 条的倍数显示它们。因此,我需要知道有多少个面板可以使用 JavaScrip
我是一名优秀的程序员,十分优秀!