編輯:Android開發教程
作為IT新手,總以為只要有時間,有精力,什麼東西都能做出來。這種念頭我也有過,但很快就熄滅了, 因為現實是殘酷的,就算一開始的時間和精力非常充足,也會隨著項目的推進而逐步消磨殆盡。我們會發現, 自己越來越消極怠工,只是在無意義的敲代碼,敲的還是網上抄來的代碼,如果不行,繼續找。
這就 是項目進度沒有規劃好而導致的。
最近在做有關藍牙的項目,一開始的進度都安排得很順利,但是因 為測試需要兩部手機,而且還要是android手機,暑假已經開始了,同學們都回家了,加上我手機的藍牙壞了 ,導致我的進度嚴重被打亂!而且更加可怕的是,就算我手機這邊調試完畢,我最終的目標是實現手機與藍牙 模塊的通信,那個測試板至今未送過來,所以,我開始消極怠工了。
經驗教訓非常簡單:根據整個項 目的時間長度規劃好每天的進度,視實際情況的變化而改變規劃,就算真的是無法開展工作,像是現在這樣抽 空出來寫寫博客都要好過無意義的敲代碼。
今天講的內容非常簡單,只是講講有關於android界面更新 的方面。
1.利用Looper更新UI界面
如果我們的代碼需要隨時將處理後的數據交給UI更新,那麼 我們想到的方法就是另開一個線程更新數據(也必須這麼做,如果我們的數據更新運算量較大,就會阻塞UI線 程),也就是界面更新和數據更新是在不同線程中(android采用的是UI單線程模型,所以我們也只能在主線程 中對UI進行操作),但這會導致另一個問題:如何在兩個線程間通信呢?android提供了Handler機制來保證這 種通信。
先是一個簡單的例子:
public class MainActivity extends Activity {
private Button mButton;
private TextView mText;
@SuppressLint("HandlerLeak")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButton = (Button)this.findViewById(R.id.button);
mText = (TextView)this.findViewById(R.id.text);
final Handler handler = new Handler(){
@Override
public void handleMessage(Message msg){
super.handleMessage(msg);
if(msg.what == 1){
mText.setText("更新後");
}
}
};
mText.setText("更新前");
final Thread thread = new Thread(new Runnable(){
@Override
public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
});
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
thread.start();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Android 4.4急需的新功能
Google馬上就要正式發布Android 4.4 KitKat了。據我們現在所知,一些新的用戶界面預示著這次的操作系統將有一些新的改變,比如說重新設計的電話應用,比如說
Android Fragment完全解析,關於碎片你所需知道的一切
我們都知道,Android上的界面展示都是通過Activity實現的,Activity實在是太常用了,我相信大家都 已經非常熟悉了,這裡就不再贅述。但是Activity也
Android和iOS平台碎片化比較
Android系統的分銷模式注定帶來了碎片化問題,廠商可以按照自己的市場定位和運營商特殊需求來定制自己的設備,這就導致了Android平台凌亂的分辨率和版本分布。今天Fo
Android開發入門(十六)其他視圖 16.2 WebView
WebView能夠讓你在activity中去內嵌一個web浏覽器。如果你的應用需要內嵌一些web內容的話,這是非 常有用的。下面展示如何在activity中通過編碼的方式