AsyncTask 不能与Thread.sleep()同时使用解决方案

简介: public class MainActivity extends Activity { private ImageView iv_ads; String urrstrString = "http://a.
public class MainActivity extends Activity {

	private ImageView iv_ads;
	String urrstrString = "http://a.hiphotos.baidu.com/image/pic/item/7af40ad162d9f2d3f7ec95eeabec8a136327cc36.jpg";
	Bitmap bitmap;
	ProgressDialog pDialog;

	private Handler handler = new Handler();
	private Runnable runnable = new Runnable() {
		@Override
		public void run() {
			try {
				Thread.currentThread();
				Thread.sleep(10000);
				startActivity(new Intent(MainActivity.this, NextActivity.class));
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	};

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.activity_main);
		iv_ads = (ImageView) findViewById(R.id.iv_ads);
		new LoadImage().execute(urrstrString);

		iv_ads.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				MainActivity.this.startActivity(new Intent(MainActivity.this,
						AdsActivity.class));
			}
		});

	}

	private class LoadImage extends AsyncTask<String, String, Bitmap> {
		@Override
		protected void onPreExecute() {
			super.onPreExecute();
			pDialog = new ProgressDialog(MainActivity.this);
			pDialog.setMessage("Loading Image ....");
			pDialog.show();
		}

		protected Bitmap doInBackground(String... args) {
			try {
				bitmap = BitmapFactory.decodeStream((InputStream) new URL(
						urrstrString).getContent());
			} catch (Exception e) {
				e.printStackTrace();
			}
			return bitmap;
		}

		protected void onPostExecute(Bitmap image) {
			if (image != null) {
				iv_ads.setImageBitmap(image);
				pDialog.dismiss();
				handler.postDelayed(runnable, 4000);
			} else {
				pDialog.dismiss();
				Toast.makeText(MainActivity.this,
						"Image Does Not exist or Network Error",
						Toast.LENGTH_SHORT).show();
			}

		}

	}
}

  异步线程与直接在oncreate() 中Thread.sleep()达不到预期的停留几秒的效果,可以用Handler发送消息,来实现效果...............

目录
相关文章
|
JSON Java 定位技术
【Android App】GPS获取定位经纬度和根据经纬度获取详细地址讲解及实战(附源码和演示 超详细)
【Android App】GPS获取定位经纬度和根据经纬度获取详细地址讲解及实战(附源码和演示 超详细)
4140 1
|
存储 网络安全 数据安全/隐私保护
Windows Server 2019 IIS HTTPS证书部署流程详解
Windows Server 2019 IIS HTTPS证书部署流程详解
1113 0
|
Java Spring
解决SpringBoot中@RequestBody不能和Multipart同时传递的问题
请根据你的实际需求选择上述方法之一来解决Spring Boot中 `@RequestBody`不能和 `Multipart`同时使用的问题。
1771 1
|
网络安全 开发工具 数据安全/隐私保护
sourcetree安装与简单使用图文说明(非常详细)
​ 1、下载 点击此处下载sourcetree 弹窗勾选同意相关协议,点击“Download”按钮下载即可 2、安装 1)双击下载的sourcetree安装包  如图所示,选择Bitbucket方式(如代码仓库放在Bitbucket服务器,可选择Bitbucket服务器方式输入地址和用户名,再在弹窗中输入密码即可,本文只针对Bitbucket方式) 关于Bitbucket的登录注册,这里不做过多赘述,有不明白的同学欢迎留言讨论 2)登录成功,点击“下一步”按钮 3)继续点击“下一步”按钮 4)配置偏好设置信息,点击“下一步”按钮 这里就是安装成功后上传代码会显示的用户名和对
3465 1
|
SQL Oracle NoSQL
Navicat Premium 15 破解激活工具及安装教程(永久激活亲测可用)
建议:作为开发者来说,不管你是第一次使用本教程,还是老油条,还是开过好几篇破解教程都感觉在欺骗,那么看本教程就对了,并且保持良好心态,在破解过程中请耐心细心,不要急躁,也不要急着破解成功,自己出错了,特别是刚刚入行或者才使用idea的小伙伴不要到处找文章,如果遇到问题可以私信我,作者有时间可以帮大家伙解决问题,毕竟我也是从新手一步步升级打怪抗过来的,经验还是有的,请认准b站灬沙师弟,另外如果作者的步骤有问题还请及时指出,我及时修正,也感谢大家伙的信任,另外作者刚在b站建号,视频也在做,不过做的不好,有喜欢的也可以去看看,一句话总结(细心操作每一步,核验自己的操作结果,机器不会说谎,
3766 0
|
Java Android开发 容器
我们经常用的Loading动画居然还有这种姿势
深度解耦 Android App 中全局加载中、加载失败及空数据视图。 分离全局加载状态视图的实现和使用。 不需要在每个页面的布局文件中额外添加加载状态视图。 可用于 Activity,也可用于为某个 View 显示加载状态,还可用于各种通过列表 Item ( ListView、RecyclerView 等)。
4545 0
|
Android开发 容器 数据格式
ViewPager+Fragment实现TabHost,Fragment动态添加、删除,Tab选项卡跟随滑动
效果图: 代码功能: (1)用ViewPager+Fragment实现TabHost,ViewPager的每一个Page均是Fragment。
1656 0
|
8天前
|
人工智能 运维 安全
|
6天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
658 23