- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我在 AsyncTask
的 doInBackground
方法中启动一个新线程,从性能的角度来看是否可以?我写了一个从服务器下载文件的小程序。该方法在 doInBackground
中运行。现在,为了找出下载文件的当前大小,我启动了一个新线程,该线程读取通过管道传输到本地 File
对象的字节数。我需要这个来发布下载百分比。这是代码 fragment :
@Override
protected Void doInBackground(Void... params) {
try {
client.download(dir + "/" + component0, new java.io.File(
Environment.getExternalStorageDirectory() + "/"
+ component0));
Thread trd = new Thread(new Runnable() {
@Override
public void run() {
while (tempfile.length() != filesize) {
if (tempfile.length() * 100 / filesize != percent) {
percent = (int) (tempfile.length() * 100 / filesize);
publishProgress(percent);
}
}
}
});
trd.start();
} catch (IllegalStateException | IOException
| FTPIllegalReplyException | FTPException
| FTPDataTransferException | FTPAbortedException e) {
e.printStackTrace();
}
return null;
}
程序运行良好,但下载速度似乎比应有的慢了一点。是否与在 doInBackground
方法中创建的新 Thread
有关?
最佳答案
不要那样做,我认为这不会影响用户可以判断的性能,但这只是一种不好的做法。而是使用此处描述的 Handler 类函数 postDelay: http://developer.android.com/reference/android/os/Handler.html#postDelayed(java.lang.Runnable , 长)
您可以将函数调用延迟到 X 秒,然后每次都再次调用它,直到下载完成:
Handler h = new Handler();
void doWork() {
h.postDelayed(new Runnable() {
@Override
public void run() {
// do work here...
if (!finish) {
doWork();
}
}
}, 1000);
}
关于java - doInBackground : Will it impact the performance? 内的新线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29306593/
我认为在程序的顶层,will end 和 will leave 的行为是一样的,因为只有一个大的外部作用域可以退出/离开。我认为这两种方法都是检查变量最终值的好方法。 但是 will end 就像变量
我正在使用 C18 在 PIC18 上构建 16 状态 FSM。我正在考虑将每个状态作为其自己的函数,该函数会跳转到其他状态并被其他状态跳转。我很想在每个状态的末尾编写一个“state##();”的分
I have created an API authorization system for accessing data with an API KEY in the server . I c
如图所示,State不会被放置在构造函数中会导致错误。但是,如果状态放置在构造函数内,则不会。 但是,如果你为状态声明一个类型,也可以。 请 最佳答案 当你这样做 state = { quota:
一个月前困扰我的同样问题现在仍然困扰着我。我知道我在这个网站上问了几个关于这个的问题,我真的很抱歉。你的建议都很好,但答案仍然难以捉摸。我现在意识到这是我无法正确表达我的问题的直接结果,对此我深表歉意
在 Dagger2 的文档中,它说 If your class has @Inject-annotated fields but no @Inject-annotated constructor, D
这个问题在这里已经有了答案: Select nth-child across multiple parents (2 个答案) 关闭 5 年前。
我正在尝试优化我的网络应用程序的滚动。我有包含大量数据的数据表,滚动变得非常糟糕。我将 will-change: transform 添加到数据表中,但它破坏了我的 position: fixed 表
我想创建一个行为如下的控制台应用程序: 应用程序的第一个实例将执行一个流程。 稍后执行的第二个实例将终止进程。 有没有简单的方法可以做到这一点? 编辑:第二个实例也终止第一个实例和它自己。 编辑 2:
我的站点是托管在 Heroku 上的 Rails 应用程序。我打算为站点删除 SSL(只是要注释掉 config.force_ssl 行)。 我打算改变现状,仅将 SSL 用于登录/注册,但这会解决我
为什么 Fabric“Fabric iOS 和 Android 移动应用程序将于 2018 年 11 月 30 日停用。在此日期之后,您将无法登录应用程序”会关闭吗? 最佳答案 只需查看此官方帖子即可
Flash 的 MovieClip 时间轴的创建方式可以跳过帧以保持动画平滑度和音频同步。 我的问题是,如果帧上有 ActionScript,是否有可能跳过该帧,从而不调用脚本? 或者有脚本的帧永远不
我对“名称”索引运行全文搜索,但我忽略了名称“Will”,因为“will”一词位于忽略列表中。 我的数据库托管在共享主机中,无法配置它。正确搜索的可能解决方案是什么? 最佳答案 作为 fulltext
GHC 可以将 id = (\(a, b) -> (a, b)).(\(a, b) -> (a, b)) 简化为 id = \(a, b) -> (a, b) 吗? 更复杂的情况呢: id (Just
我想从 Dockerfile 构建 Docker 容器。它包含一个私有(private)项目。 我的问题很简单,我没有找到明确的答案:构建镜像后,它会自 Action 为公共(public)镜像发送到
是否有可能在 iOS 上获得“将轮换”通知,之前 执行旋转动画?喜欢 UIViewController方法willRotateToInterfaceOrientation:duration: . 我知
问题:我什么时候可以说跨平台工具可以处理这种类型的开发..? 以下是不需要回答的问题。这些只是我提出问题的指导,以避免描述过长。 对于游戏开发: 工具(即phoneGap、widgetPad 等)是否
看完post在 CSS 技巧上,我注意到帖子末尾的一条建议 it’s recommended to toggle on will-change just before an element or pr
我有一个 css prop 就像声明的那样 #menu li#selected { padding: 0 10px; margin:0; background:url(nav-tab-left.gif
我不知道如何从这个问题开始: 一个图有 n 个顶点和 m 条边。没有两对顶点可以由多于一条边连接。Rahul 开始玩游戏:他以下列方式改变边缘 - 他选择一个顶点,并从该顶点向不存在边的所有其他顶点添
我是一名优秀的程序员,十分优秀!