首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在活动/片段的onResume方法中调用AsyncTask后,setVisibility()方法不起作用

在活动/片段的onResume方法中调用AsyncTask后,setVisibility()方法不起作用的原因可能是因为AsyncTask的执行是异步的,而setVisibility()方法是在主线程中执行的。由于异步任务的执行时间不确定,可能会导致setVisibility()方法在任务执行完成之前就已经被调用了,从而导致不起作用。

为了解决这个问题,可以在AsyncTask的回调方法中执行setVisibility()方法,确保在任务执行完成后再进行UI的更新操作。具体的做法是在AsyncTask的onPostExecute()方法中调用setVisibility()方法,该方法会在任务执行完成后在主线程中被调用。

另外,还可以考虑使用Handler或者runOnUiThread()方法来在主线程中更新UI。在AsyncTask的回调方法中,通过Handler或者runOnUiThread()方法将更新UI的操作包装起来,确保在主线程中执行。

以下是一个示例代码:

代码语言:java
复制
public class MyAsyncTask extends AsyncTask<Void, Void, Void> {
    private Activity mActivity;
    private View mView;

    public MyAsyncTask(Activity activity, View view) {
        mActivity = activity;
        mView = view;
    }

    @Override
    protected Void doInBackground(Void... voids) {
        // 执行耗时任务
        return null;
    }

    @Override
    protected void onPostExecute(Void aVoid) {
        super.onPostExecute(aVoid);
        mActivity.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                mView.setVisibility(View.VISIBLE);
            }
        });
    }
}

// 在活动/片段的onResume方法中调用AsyncTask
@Override
protected void onResume() {
    super.onResume();
    MyAsyncTask myAsyncTask = new MyAsyncTask(this, myView);
    myAsyncTask.execute();
}

在上述代码中,通过在AsyncTask的构造函数中传入活动/片段和需要更新的视图,然后在onPostExecute()方法中使用runOnUiThread()方法来更新UI,确保setVisibility()方法在主线程中执行。这样就能够解决在onResume方法中调用AsyncTask后setVisibility()方法不起作用的问题。

对于腾讯云相关产品和产品介绍链接地址,可以根据具体需求选择适合的产品,例如云服务器(https://cloud.tencent.com/product/cvm)、云数据库MySQL版(https://cloud.tencent.com/product/cdb_mysql)、云存储(https://cloud.tencent.com/product/cos)、人工智能(https://cloud.tencent.com/product/ai)、物联网(https://cloud.tencent.com/product/iot)、移动开发(https://cloud.tencent.com/product/mobdev)等。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

javaonresume_java – 直接onResume()调用替代方法

大家好,又见面了,我是你们朋友全栈君。 我正在重写我Android应用以消除对onResume()直接调用....我应用程序目前onResume()内部完成大部分工作,然后发布显示,这是onResume()结束....我解决方案是将600行代码收集到一个单独例程,并从onResume()内部和onOptionsItemSelected()多个点调用它....你onResume()方法实现本身是无害.但是调用超级方法是super.onResume();会让系统认为它是恢复事件另一种情况.这将导致刷新视图和类似内部工作不必要资源使用.因此,在任何情况下都必须避免显式调用生命周期回调方法....当然还有其他选择(如AsyncTask).您可以在线轻松找到更多相关信息(尝试搜索“Android多线程”).随意问更多.

88520

vuehtml标签{{}}内可以调用函数方法

今天领导提个需求,要求金额上强制保留两位小数,本想着后台直接返回数据时,带着两位小数,前端只是做个显示作用,后台说保留了小数但在传输过程中去掉了,可能他们做了格式转化。...没办法了只能又是我们前端操作了,牵扯价钱太多了,很多时候又有for 循环,怎么办呢? 思路:{{}}里面的是一个表达式,可不可以是个函数呢?...经测试是可以,具体实现方法如下: 写一个公共强制保留两位小数js方法 function toDecimal2 (x) { var f = parseFloat(x) if (isNaN(f....' } while (s.length <= rs + 2) { s += '0' } return s } export default { toDecimal2 } main.js...引用: import newPrice from '.

30.4K20

hanlpPython环境安装失败解决方法

Hanlp是由一系列模型与算法组成javag工具包,目标是普及自然语言处理再生环境应用。...有很多人在安装hanlp时候会遇到安装失败情况,下面就是某大神分享python环境安装失败解决方法,大家可以借鉴学习以下!...HANLP.jpg 由于要使用hanlp进行分词,而我们环境是python环境所以得安装pyhanlp,但是安装过程总是出现这样问题 图1.png 看上去感觉是缺少了visual c++环境,于是安装...visual c++,可查看这个博客www.hankcs.com/nlp/python-calls-hanlp.html 安装完发现问题并没有解决,初步怀疑应该是 jpype1没有安装成功,于是使用pip...CPython 3.6 and win32 → 32-bit version of ms-windows win_amd64 → 64-bit version of ms-windows 手动安装jpype1成功

2K20

关于使用MethodHandle子类调用祖父类重写方法探究

关于使用MethodHandle子类调用祖父类重写方法探究 注:这个例子原本出现在周志明先生《深入理解Java虚拟机》--虚拟机字节码执行引擎章节,介于有读者朋友有疑问,这里基于Java代码层面解释一下...由于找到thinking方法是非static,需要一个隐式入参(也就是栈帧中局部变量表第0个位置this参数),java这叫做该方法接收者。...普通方法调用,这个this参数是虚拟机自动处理,表示是当前实例对象,我们方法可以直接使用。...但是我们这个MethodHandle例子,相当于是模拟了invoke*指令处理,手动调用invoke方法就需要指定这个"this"参数。...我觉得使用bindTo绑定方法接收者要比invoke方法传递更加友好,也更加符合程序员大众理解,invoke可以只专注方法显式入参。 然后再来说bindTo(this)this。

9.4K30

C++反射调用.NET(一) 反射调用第一个.NET类方法

为什么要在C++调用.NET 一般情况下,我们常常会在.NET程序调用C/C++程序,使用P/Invoke方式进行调用,在编写代码代码时候,首先要导入DLL文件,然后根据C/C++头文件编写特殊...extern int Multiply(int factorA, int factorB); 详细过程,可以参考之前我这篇文章:《C#调用C和C++函数一点区别》 有时候,我们也会有C++调用...注意,本文说C++反射调用,不是对C++自身进行封装反射功能,而是C++/CLI代码反射调用.NET代码,原理上跟你.NET应用反射调用另外一个.NET程序集一个道理。...C++,类成员用 -> 符号调用,命名空间或者类静态成员,用::调用,例如上面的构造函数代码: Assembly^ ass = Assembly::LoadFrom(this->assemblyFile...C++/CLI中使用反射 反射调用第一个.NET类方法 下面的方法,将会反射调用 User类一个最简单方法 : public int GetUserID(string IdString){} 该方法只有一个一个参数和一个简单返回值

3.2K100

AsyncTask类实例详解

AsyncTask也叫做“异步任务”,是一个抽象类 AsyncTask约定了子线程执行任务抽象方法,开发者可以自定义AsyncTask实现类重写该方法, 则AsyncTask工作时会自动开启子线程执行相关代码...Progress 执行异步任务过程,标识进度数据类型 Result 执行异步任务,需要返回结果数据类型 AsyncTask抽象方法: public abstract Result doInBackground...) 该方法调用后,会自动开启子线程并调用dnInBackground()方法,该方法必须在UI线程调用 案例: 布局: <Button android:id="@+id/button1...更新UI <em>AsyncTask</em>约定了任务执行完毕<em>后</em><em>的</em>回调<em>方法</em>,该<em>方法</em>并不是抽象<em>的</em>,开发者可以选择性<em>的</em>实现。...更新进度 <em>AsyncTask</em>约定了任务执行过程<em>中</em>,更新进度<em>的</em>回调<em>方法</em>,该<em>方法</em>并不是抽象<em>的</em>,开发者可以选择性地实现。

59910

没想到吧,PHP 外部也可以调用私有方法

一般来说, Class 外部是无法调用私有方法,这也是 Private 字面的意思,但是一些很特殊很特殊情况下,如果需要调用,是否可以呢?其实可以使用类反射来实现。...reflection->getClosure($object); } return call_user_func_array($callback, $args); } 简单解释一下,首先还是简单判断该方法是否存在...,接着获取对象方法放射,然后判断一下是不是公共方法,如果是公共就正常调用,不是则获取其闭包,最后使用回调方式来调用。...这个函数可以让你调用对象私有或者受保护方法,建议一些特殊情况下才使用。为了方便大家调用,新版 WPJAM Basic 也会集成该函数。----

99830

盘点CSV文件Excel打开乱码问题两种处理方法

encode character解决方法,今天基于粉丝提问,给大家介绍CSV文件Excel打开乱码问题两种处理方法,希望对大家学习有所帮助。...前言 前几天有个叫【RSL】粉丝Python交流群里问了一道关于CSV文件Excel打开乱码问题,如下图所示。...一、思路 其实解决问题关键点就是在于一点,就是编码转换。这里例举两种方法,肯定还有其他方法,也欢迎大家评论区谏言。...因为我源文件本身就是韩语和日本语,所以看到就是这个了。 5)Excel显示,如下图所示: 看上去还是比较清爽,如此一来,中文乱码问题就迎刃而解了。...本文基于粉丝提问,针对CSV文件Excel打开乱码问题,给出了两种乱码解决方法,顺利帮助粉丝解决了问题。虽然文中例举了两种方法,但是小编相信肯定还有其他方法,也欢迎大家评论区谏言。

3.2K20

已中招!Android 基础面试常常吊死在这几个问题上……

通常,这是我们创建视图,从包获取数据等地方。 OnStart():Activity对用户可见时调用。...如果Activity进入前台,则紧跟着onResume();如果活动被隐藏,则紧跟着onStop()。 OnResume():Activity将开始与用户互动时调用。... Activity 生命周期中,无论是应用程序启动时,还是Activity 被销毁然后重新创建(例如在配置更改期间)时,都会调用一次 onCreate() 方法。...由于 setContentView() 是一项繁重操作,因此无法 onResume() 或onStart() (多次调用设置内容是无效。 9、面试官:说一下Android几种启动模式吧!...例如,当需要加载手机很多图片并要求拿到各种信息时,如照片尺寸等,或读取非常大 Json 文件时候,应该放到子线程操作,当处理完毕,通知主线程继续执行任务!

2K20

安卓开发_浅谈AsyncTask

但是子线程无法去操作主线程(UI 线程),子线程操作UI线程会出现错误。因此android提供了一个类Handler来子线程来更新UI线程,用发消息机制更新UI界面,呈现给用户。...三、构建AsyncTask子类回调方法   1..execute(Params... params),执行一个异步任务,需要我们代码调用方法,触发异步任务执行。   ...,   并将dolnBackground()方法返回值传给该方法,展示处理完结果   5、onProgressUpdata:dolnBackground()方法调用pubilshProgress...()方法   更新任务执行进度,就回触发该方法。...用于显示任务执行进度。   6、onCancelled(),在用户取消线程操作时候调用主线程调用onCancelled()时候调用。   几个方法是有规律

1.7K70

AppServ(WAMP环境)Windows 10安装localhost页面打开后为空白解决方法

近期由于项目需要, 尝试了Windows 10专业版电脑上部署WAMP(Windows + Apache + MySQL + PHP)环境......先使用Appserv v2.5.10试了一下,发现打开localhost页面是空白,而且命令行Apache根本无法启动,于是尝试了下面几种方法: 1. 使用管理员权限启动Apache,无效。 2....127.0.0.1 localhost ::1 localhost 根据以往经验,Windows7上安装完Appserv,就可以顺利打开localhost了,并不会出现这样情况。...继续查资料发现有两种可能解决方法: 1....由于该项目中端口不可随意更改,于是采用了前一种方法,问题顺利解决,撒花... 当然,上述解决方法不仅适用于Appserv,同样适用于Xampp、WAMP等PHPWeb集成环境...

2.1K30

Android Fragment用法知识点讲解

利用Fragment实现更好用户体验。 图片 Fragment加载 静态加载:添加Fragment到Activity布局,以xml形式。...第三步,调用addToBackStack(true)方法,目的为了允许用户通过按下返回按键返回到前一个Fragment状态,beginTransaction.commit()提交。...图片来源官方: 生命周期 onAttach(): 一旦片段与其活动相关联就被调用; onCreate(): 片段调用创建; onCreateView(): 创建并返回相关视图结构; onActivityCreated...(): 表示活动已被创建完成了,这里是activity创建成功; onStart(): 片段对用户可见; onResume(): 片段与用户开始交互; onPause(): 片段与用户不再交互;...onStop(): 片段不再对用户可见; onDestroyView(): 销毁与其View相关资源; onDestroy(): 销毁一切片段; onDetach(): 片段与其活动不再相关联

99360

Android Fragment用法实例详解

Fragment加载 1.静态加载:添加Fragment到Activity布局,以xml形式。...第三步,调用addToBackStack(true)方法,目的为了允许用户通过按下返回按键返回到前一个Fragment状态,beginTransaction.commit()提交。...onAttach(): 一旦片段与其活动相关联就被调用; onCreate(): 片段调用创建; onCreateView(): 创建并返回相关视图结构; onActivityCreated(...): 表示活动已被创建完成了,这里是activity创建成功; onStart(): 片段对用户可见; onResume(): 片段与用户开始交互; onPause(): 片段与用户不再交互;...onStop(): 片段不再对用户可见; onDestroyView(): 销毁与其View相关资源; onDestroy(): 销毁一切片段; onDetach(): 片段与其活动不再相关联。

1.4K31

抢购倒计时自定义控件实现与优化

实例onTick()方法调用setSecond()方法每次间隔时间(也就是1s)定期刷新view,完成倒计时控件更新。...此外,产品还有一个一分钟定期上报埋点需求,也可以onTick()方法完成。实际项目事件,若有定时任务需求,也可在该方法自由设置。...取消方法,直接调用CountDownTimer实例cancel()方法取消倒计时。...2.3 倒计时类实际调用 实际调用倒计时控件时,只需具体布局添加该倒计时类布局,调用实例化BaseCountDownTimerView。...由于这些情况都会触发倒计时所在FragmentonResume()方法。因此可以重写onResume(),并在该方法体内获取倒计时控件View,然后调用方法重新开始倒计时。

1.4K30

Android面试大纲(集合)

Activity调用Fragment方法:接口回调 Fragment调用Fragment方法:FragmentManager.findFragmentById 6、Fragmentreplace...()方法,拿到Proxy代理类 通过调用Proxy代理类方法,将参数进行封包调用底层transact()方法 transact()方法会回调onTransact()方法,进行参数解封 onTransact...():当doInBackground调用publishProgress时回调,主线程执行 onPostExecute():异步任务执行之后回调,主线程执行 onCancelled():异步任务被取消时回调...当任务完成,IntentService会自动停止,而不需要手动调用stopSelf()。...是存放在堆,我们只要回收堆内存即可 安卓3.0以后Bitmap是存放在内存,我们需要回收native层和Java层内存 官方建议我们3.0以后使用recycle方法进行回收,该方法也可以不主动调用

1.1K20

Fragment三问—B站真题

Fragment作为Android最基本,最重要基础概念之一,也是Activity好搭档,开发中经常会和他打交道。...onStop():当Fragment不可见时调用。 onDestroyView():当FragmentUI从视图结构移除时调用。 onDestroy():销毁Fragment时调用。...onDetach():当Fragment和Activity解除关联时调用。 每个调用方法对应生命周期变化: add(): onAttach()->…->onResume()。...remove()+add()生命周期加起来 show(): 不调用任何生命周期方法调用方法前提是要显示 Fragment已经被添加到容器,只是纯粹把Fragment UIsetVisibility...hide(): 不调用任何生命周期方法调用方法前提是要显示Fragment已经被添加到容器,只是纯粹把Fragment UIsetVisibility为false。

70430
领券