您的位置:首页 > 产品设计 > UI/UE

安卓ui线程优先级

2015-06-29 10:53 459 查看
最近在做静默安装发现在做下载按钮状态安装的时候 例如一个TextView文字的修改,起初代码格式为如下所示

btnDown.setTag(TAG_INSTALLING);
updateDownloadBtnState(btnDown,
game, DownloadState.Finished);//更新按钮状态 此方法包含按钮文字和颜色
ModMgr.getGameDownloadMgr().installApk(context, game);//安装apk
game.mIsInstalling = false;


发现在安装中会出现按钮状态还没有改变的时候 apk安装环节就已经执行,所以因此推测在底层ui刷新和其他操作并不是线性执行,虚拟机先执行安装操作后才执行按钮刷新操作,所以做了以下修改。

btnDown.setTag(TAG_INSTALLING);
updateDownloadBtnState(btnDown,
game, DownloadState.Finished);
MessageManager.getInstance().asyncRun(100, new Runner() {
@Override
public void call() {
ModMgr.getGameDownloadMgr().installApk(context, game);
game.mIsInstalling = false;
}
});//此方法作用为在主线程延时100秒后执行 其中调用了handler.postDelayed实现


在延时主线程安装操作100毫秒以后 按钮状态改变后才执行安装操作 达成所期望效果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ui线程