解决横纵屏问题、得到系统通讯录数据的方法

   两个很简单的小问题,但又容易忘记,所以在此记录一下:

   一、解决横纵屏问题:

   android系统默认设置下,切换屏幕方向时,生命周期方法会被重新调用一次,如,当把横屏切换成纵屏时,activity会分别调用以下方法:onPause()- onStop()- onDestroy() - onCreate() - onStart() - onResumn()。所以这样就会导致界面被重新加载一次,影响性能。

   解决这个问题,需要在清单文件里设置activity的属性:

    android:configChanges="orientation|keyboardHidden"

   若想要自己设置屏幕方向,则是:android:screenOrientation="portrait",

    portrait :纵屏

    landscape:横屏

    sensor   :显示的方向由方向传感器决定的(两个方向)

    fullSensor:显示的方向由方向传感器决定的(四个方向)


    二、获取系统通讯录数据:

       //获取内容解析者

       ContentResolver resolver = getContentResolver();

       //通过内容解析者去查询系统联系人

       Cursor cursor = resolver.query(Phones.CONTENT_URI, null, null, null, null);    

       String[] from = new String[]{Phones.NAME,Phones.NUMBER};

       int[] to = new int[]{R.id.textView1,R.id.textView2};

       SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.item_list,

       cursor, from, to);

       mListView.setAdapter(adapter);