Android開発タイミングリフレッシュインタフェース
2385 ワード
Androidクライアントソフトウェアは、ソフトウェアのアップグレードやソフトウェア内部の更新など、一部のインタフェースをリフレッシュする必要があります.Androidでは、この機能を実現するために2つの方法を選択できることを紹介します.
方式一、Timer(タイマー)とTimerTaskを用いて実現
サンプルコード:
方式二、RunnableとHandlerを使う
サンプルコード
第1の方法はまた、メッセージ通知の方法で更新を実現するのに適しており、第2の方法は、通常、リフレッシュが必要かどうかをアクティブにチェックすることである.タイミングリフレッシュの場合、このような第2の方法を使用するのがより良い.
方式一、Timer(タイマー)とTimerTaskを用いて実現
サンプルコード:
public class MainActivity extends Activity {
private TextView msg;
final Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
update();
break;
}
super.handleMessage(msg);
}
void update() {
// msg
}
};
Timer timer = new Timer();
TimerTask task = new TimerTask() {
public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
msg = (TextView) findViewById(R.id.txtMsg);
msg.setText(" !");
timer.schedule(task, 1000 * 40, 1000 * 30); // timer
}
@Override
protected void onDestroy() {
if (timer != null) {// timer
timer.cancel();
timer = null;
}
super.onDestroy();
}
}
方式二、RunnableとHandlerを使う
サンプルコード
public class MainActivity extends Activity {
private TextView msg;
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
public void run() {
this.update();
handler.postDelayed(this, 1000 * 120);// 120
}
void update() {
// msg
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
msg = (TextView) findViewById(R.id.txtMsg);
msg.setText(" !");
handler.postDelayed(runnable, 1000 * 60);
}
@Override
protected void onDestroy() {
handler.removeCallbacks(runnable); //
super.onDestroy();
}
}
第1の方法はまた、メッセージ通知の方法で更新を実現するのに適しており、第2の方法は、通常、リフレッシュが必要かどうかをアクティブにチェックすることである.タイミングリフレッシュの場合、このような第2の方法を使用するのがより良い.