痴汉学android,胡来胡读胡记录

Handler 一个线程只有启动了Looper,才能在其中创建Handler的对象,进行消息处理,否则程序会出现异常。
启动Looper通过调用静态方法Looper.prepare();来实现。
一个线程只能有一个Looper和一个MessageQueue,但是可以有多个Handler对象。程序中可以使用不同的Handler对象处理不同的消息。

Timer定时器也是常用的实现多线程程序的方式,但是在定时器中也不能直接进行UI操作,需要通过Handler类,Activity.runOnUiThread(Runnable)方法,或者View.post(Runnable)方法等方式来间接进行UI操作。

AsyncTask类提供的一个轻量级的基于多线程的后台异步工作处理的类。后台工作比较简单,只需要向UI线程传递一些简单数据时可以使用AsyncTask类。

private static final long serialVersionUID = 1L;
如果你的类Serialized存到硬盘上面后,可是后来你却更改了类的field(增加或减少或改名),当你Deserialize时,就会出现Exception的,这样就会造成不兼容性的问题。
但当serialVersionUID相同时,它就会将不一样的field以type的预设值Deserialize,可避开不兼容性问题。

WebView v = (WebView) findViewById(R.id.view);
        v.setWebViewClient(new WebViewClient(){
            public boolean shouldOverrideUrlLoading(WebView view,String url){
                view.loadUrl(url);
                return super.shouldOverrideUrlLoading(view, url);
            }
        });
        v.loadUrl("http://blog.csdn.net/jijiaxin1989/article/details/44178489");

setWebViewClient()方法用于指定loadUrl()方法打开页面的载体。如无此行代码程序也能运行,但是默认的初始页面index.html页面会由WebView组件转交给android系统默认浏览器打开。加上次行代码后,页面将由webview组件本身打开。

1、改变标题内容:public void setTitle (CharSequence title)
2、隐藏标题:requestWindowFeature(Window.FEATURE_NO_TITLE);
3、隐藏标题和最上面的电池电量及信号栏(全屏):

public void setFullscreen() { 
requestWindowFeature(Window.FEATURE_NO_TITLE); 
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
WindowManager.LayoutParams.FLAG_FULLSCREEN); 
} 

4自定义标题:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); 
//预先设置允许改变的窗口状态,需在 setContentView 之前调用,否则设置标题时抛运行时错误。
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 
setContentView(R.layout.custom_title); 
//标题区域可设置为 layout ,如此可以有丰富的展现方式 

getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, 
R.layout.custom_title_1); 
}

res\layout\custom_title_1.xml 包含一个TextView 用于显示标题。Android可以把标题做为一个layout来展示,具有很好的扩展性。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/screen"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:orientation="vertical">
    <TextView android:id="@+id/left_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:text="@string/custom_title_left" />
</RelativeLayout>

监听按键,返回键拦截,返回前一个webview页面

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(keyCode == KeyEvent.KEYCODE_BACK){
            mWebView.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

数据解析
json数据是以键值对形式存放的字符串,xml数据则类似于HTML,是以标签形式提供的文本。
json是目前常用的轻量级网络数据传输格式,android api中直接支持对JSON数据的处理。json解析中常用的类有JSONObject、JSONArray、JSONStringer、JSONTokener等。
对于格式较复杂的数据,仍然需要使用xml格式
android api中提供了如下几种处理xml数据的方法:
DOM方式:基于树的解析与处理
SAX方式:基于流的解析与处理(推方式)
XML PULL方式:基于流的解析与处理(拉方式)
xml数据的组织形式就是树状结构,
DOM方式处理数据就是先读取所有的xml数据,将其构造成一棵树,然后通过一些方法进行数据的处理
SAX并非事先把所有的xml节点都读入内存,再进行数据处理,而是一边读一边对所需要的数据进行处理。基于事件触发的,等带着把数据推送出去。
XML PULL采用主动拉去的方式。

webservice作为一个额成熟技术,提供了跨平台的信息交互方法,目前是异构网络主流的交互技术,使用Ksoap2第三方包。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。