1.关于关于xml数据的三种解析方式
xml文件并不是指android工程里的布局文件。
XML是一种可扩展标记语言,它被用来传输和存储数据件
SAX、DOM、Pull 的比较:
内存占用:SAX、Pull比DOM要好;
编程方式:SAX 采用事件驱动,在相应事件触发的时候,会调用用户编好的方法,也即每解析一类 XML,就要编写一个新的适合该类XML的处理类。DOM 是 W3C 的规范,Pull 简洁。
访问与修改:SAX 采用流式解析,DOM 随机访问。
访问方式:SAX,Pull 解析的方式是同步的,DOM 逐字逐句。
2.dialog可以在非activity中创建
当新建AlertDialog.Builder时需要传入application的contcontext,而不是activity的context
且需要对dialog对象设置类型为WindowManager.LayoutParams.TYPE_SYSTEM_ALERT
实例代码如下:
AlertDialog.Builder builder = new AlertDialog.Builder(MyApplication.getContext());
builder.setTitle("温馨提示:")/*设置dialog的title*/
.setMessage("已经完成")/*设置dialog的内容*/
.setPositiveButton("OK", new DialogInterface.OnClickListener() {/*设置 dialog确认按钮的点击事件*/
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
alertDialog.show();
3.java中wait()和sleep()的区别
sleep()是Thread中的方法,而wait()是object中的方法,前者需要try、catch,后者不用。
sleep()是对当前xian线程进行
这篇比较详细:java 为什么wait(),notify(),notifyAll()必须在同步方法/代码块中调用?_常思考->有目标->重实践->善反思-CSDN博客_notifyall方法只能在同步上下文中调用