主线程中延时启动dialog

主线程中延时启动dialog

错误的:

        new Thread(new Runnable() {
            public void run() {
                try {
                    Thread.sleep(5000);
                    showToMemberDialog();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }).start();



正确的:

		final Handler handler=new Handler(){
			@Override
			public void handleMessage(Message msg) {
				showToMemberDialog();
				super.handleMessage(msg);
			}
		};

		Thread thread=new Thread(){
			public void run() {
				//这里处理耗时操作,比如文件下载等等
				try {
					Thread.sleep(5000);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				handler.sendEmptyMessage(0);
			};
		};
		thread.start();

或者:

		mHandler.postDelayed(new Runnable() {
			public void run() {
				if (!isFinishing()) {
					showToMemberDialog();
				}
			}
		}, 15000);


发布了36 篇原创文章 · 获赞 19 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/j18874964028sss/article/details/75283857