編輯:關於android開發
Android中的Timer一般像下面這樣寫:
java代碼:
Timer timer = new Timer( );
TimerTask task = new TimerTask( ) {
public void run ( ) {
Message message = new Message( );
message.what = 1;
handler.sendMessage(message);
}
};
final Handler handler = new Handler( ) {
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
log.e("Timer","Timer");
update( );
break;
}
super.handleMessage(msg);
}
};
protected void onDestroy ( ) {
if (timer != null) {
timer.cancel( );
timer = null;
}
super.onDestroy( );
}
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
timer.schedule(task,1000,5000);
}
最重要的一點是 timer.schedule(task,1000,5000),如果設置為 timer.schedule(task,5000)是不會工作的。
因為timer.schedule(task,5000) 是表示執行一次的任務。
timer.schedule(task,1000,5000)表示 1 秒鐘後開始 5 秒鐘為周期 重復執行,
更好的方法是通過下面的代碼 (Handler加Runnable線程,更簡潔)
java代碼:
private Handler handler = new Handler( );
private Runnable runnable = new Runnable( ) {
public void run ( ) {
update( );
handler.postDelayed(this,1000);
//postDelayed(this,1000)方法安排一個Runnable對象到主線程隊列中
}
};
handler.postDelayed(runnable,1000); // 開始Timer
handler.removeCallbacks(runnable); //停止Timer
android:Activity啟動模式之singleTop 先看一下singleTop啟動模式的說明: 可以有多個實例,但是不允許此Activity的多個實例疊加。
PostgreSQL空值null參與運算的處理方法 在數字加減乘除運算中遇到某個字段值為空值(null)的時候,輸出的結果往往會讓我們失望,得不到我們所期待的數值,可以通
《Android Studio實用指南》8.20 提煉接口 提煉接口重構是從一個已存在的類中提煉接口,它可以從某個類中選擇方法,把選中的方法提取到一個單獨的接口中. 操
百度地圖簡單的使用,百度地圖簡單使用最近寫了百度地圖的Demo,所以總結下遇到的問題; 1.使用百度地圖,先看下官方的例子。要再清單文件中配置KEY,如果用到定位要注冊s