Android 中Cursor學習筆記

package com.jiqiang.processbarhandlertest;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;

public class ProgressBarHandlerTest extends Activity {
    /** Called when the activity is first created. */
	
	private ProgressBar progressBar;
	private Button startButton;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        progressBar = (ProgressBar)findViewById(R.id.progressbar);
        startButton = (Button)findViewById(R.id.startButton);
        
        startButton.setOnClickListener(new ProgressBarOnClickListener());
    }
    
    class ProgressBarOnClickListener implements OnClickListener{
		public void onClick(View v) {
			//設置進度條爲可見狀態
			progressBar.setVisibility(View.VISIBLE);
			updateBarHandler.post(updateThread);
		}
    }
    
    //使用匿名內部類來複寫Handler當中的handlerMessage()方法
    Handler updateBarHandler = new Handler(){
		@Override
		public void handleMessage(Message msg) {
			progressBar.setProgress(msg.arg1);
			updateBarHandler.post(updateThread);	//將要執行的線程放入到隊列當中
		}
    };
    
    //線程類,該類使用匿名內部類的方式進行聲明
    Runnable updateThread = new Runnable(){
    	int i = 0;
		public void run() {
			// TODO Auto-generated method stub
			System.out.println("Begin Thread");
			i+=10;
			//得到一個消息對象,Message類是android系統提供的
			Message msg = updateBarHandler.obtainMessage();
			//將Message對象的arg1參數的值設置爲i
			msg.arg1 = i;	//用arg1、arg2這兩個成員變量傳遞消息,優點是系統性能消耗較少
			try{
				Thread.sleep(1000);	//讓當前線程休眠1000毫秒
			}catch(InterruptedException ex){
				ex.printStackTrace();
			}
			//將Message對象加入到消息隊列當中
			updateBarHandler.sendMessage(msg);
			//如果i的值等於100
			if (i == 100){
				//將線程對象從隊列中移除
				updateBarHandler.removeCallbacks(updateThread);	
			}
		}
    };
}


一. Cursor的獲取

1. Cursor獲取的流程從ContentResolver開始:

 

二. Cursor的使用

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章