Android解决地图在线加载黑屏

黑屏原因是加载地图耗时过长,我们可以把加载地图的方法放到子线程中,执行完毕发送handler消息,再接收做相应的处理。下面是以下几种方式:

private static final int MESSAGETYPE = 0;
private ProgressDialog progressDialog = null;
private Handler handler;
	progressDialog = ProgressDialog.show(this, "", "正在加载,请稍候...");
		new Thread() {
			public void run() {
				try {
					//写加载地图的代码
				} catch (Exception e) {

				}
				handler.sendEmptyMessage(MESSAGETYPE);
			}
		}.start();

		handler = new Handler() {
			public void handleMessage(Message message) {
				switch (message.what) {
				case MESSAGETYPE:
					progressDialog.dismiss(); // 关闭进度条
					break;
				}
			}
		};
这是用一个进度条来旋转显示,执行完后进度条消失。

private static final int MESSAGETYPE = 0;
private Handler handler;
		new Thread() {
			public void run() {
				try {
					//写加载地图的代码
				} catch (Exception e) {

				}
				handler.sendEmptyMessage(MESSAGETYPE);
			}
		}.start();

		handler = new Handler() {
			public void handleMessage(Message message) {
				switch (message.what) {
				case MESSAGETYPE:
					findViewById(R.id.pd).setVisibility(View.GONE);
					break;
				}
			}
		};
如果需要显示一个旋转界面,可以在当前类的布局里面加一层,如果在加载就显示旋转布局,执行完后控件隐藏。

new Handler().postDelayed(new Runnable() {  
		    @Override  
		    public void run() {  
		    	findViewById(R.id.picyure).setVisibility(View.GONE);
		    }  
		}, 3000); 
		
		new Thread() {
			public void run() {
				try {
					//写加载地图的代码
				} catch (Exception e) {
					
				}
			}
		}.start();
在线加载地图过慢,需要等一段时间,可以设置几秒之后控件就消失进入地图加载界面,也是同样可以的。


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xkyh941/article/details/52368586
个人分类: android
上一篇Android读取本地存储和SD卡文件
下一篇Android基于百度api的天气预报
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭