編輯:關於Android編程
本篇小案例,完成一個倒計時。方式選擇AsyncTask。代碼貼在下面:
布局文件soeasy:
package com.example.asynctask;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.tv);
}
public void start(View v) {
//@1:對應的參數是:1、doInBackground回調中的傳入的參數類型;2、執行任務的參數類型
//@2:進度參數,與進度有關。onProgressUpdate的參數類型
//@3:1、doInBackground的返回值類型;2、執行結果onPostExecute傳入的參數類型
new AsyncTask() {
@Override
protected void onPreExecute() {
// 准備執行前調用,用於界面初始化操作
}
@Override
protected Integer doInBackground(Integer... params) {
// 子線程,耗時操作
int start = params[0];
int end = params[1];
int result = 0;
for (int i = end; i >= start; i--) {
SystemClock.sleep(20);
result = i;
publishProgress(result);//把進度推出去,推給onProgressUpdate參數位置
}
return result;
}
@Override
protected void onProgressUpdate(Integer[] values) {
//主線程執行的回調,可更新進度。values為doInBackground調用publishProgress時候推過來的參數。這裡每次推一個。因此數組長度就是0
int progress = values[0];
tv.setText(progress+"");
};
@Override
protected void onPostExecute(Integer result) {
// 執行完成的回調,即獲得數據後的回調
tv.setText(result+"");
}
}.execute(0,100);
}
}

Android中網絡流量控制(防火牆)——Iptables
Iptables簡介iptables是與最新的 2.6.x 版本 Linux 內核集成的 IP 信息包過濾系統。如果 Linux 系統連接到因特網
手機百度雲怎麼修改默認下載位置
手機百度雲怎麼修改默認下載位置?如果一直把文件下載百度雲手機客戶端默認的位置恐怕手機的內存條要變紅了,所以更改百度雲手機客戶端的默認下載位置是很必要的,將百
Android滑動菜單的簡單實現(SlidingPaneLayout)
SlidingPaneLayout是Android團隊在2013年Google IO大會上更新的Support V4庫裡面的高級系統控件,它可以輕松的實現一些簡單的滑動菜
Android開發自定義View實現數字與圖片無縫切換的2048
最近在學自定義View,無意中看到鴻洋大神以前寫過的2048,看起來很不錯,所以自己在他的基礎上做一個加強版的2048。先看圖: 功能除了正常的2048外,還支