关闭

Android解决地图在线加载黑屏

标签: 布局android线程地图黑屏
340人阅读 评论(0) 收藏 举报
分类:

黑屏原因是加载地图耗时过长,我们可以把加载地图的方法放到子线程中,执行完毕发送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();

在线加载地图过慢,需要等一段时间,可以设置几秒之后控件就消失进入地图加载界面,也是同样可以的。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:9131次
    • 积分:196
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:0篇
    • 译文:0篇
    • 评论:20条
    文章分类
    最新评论