请问如何定时刷新Android界面? 额,很多方法,主要就是控制handler发送消息 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 android.os.Handler 看它的API文档。 利用Handler定时更新Android UI在 Android 里定时更新 UI,通常使用的是 java.util.Timer, java.util.TimerTask, android.os.Handler 组合,这里有相关的讨论。但实际上 Handler 自身已经提供了定时的功能。 在 Android 平台上,界面元素不能在定时器的响应函数里刷新。以下这段代码中,mButton 的文本并不变化。public class AndroidTimerDemo extends Activity { private Button mButton; private Timer mTimer; private TimerTask mTimerTask; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mButton = (Button) findViewById(R.id.Button01); mTimer = new Timer(); mTimerTask = new TimerTask() { @Override public void run() { Log.d("AndroidTimerDemo", "timer"); Calendar cal = Calendar.getInstance(); mButton.setText(cal.toString()); } }; mTimer.schedule(mTimerTask, 1000, 1000); }}在 Android 平台上,UI 单元必须在 Activity 的 context 里刷新。 为了达到想要的效果,可以使用 Message Handler。在定时器响应函数里发送条消息,在 Activity 里响应消息并更新文本。public class AndroidTimerDemo extends Activity { protected static final int UPDATE_TEXT = 0; private Button mButton; private Timer mTimer; private TimerTask mTimerTask; private Handler mHandler; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mButton = (Button) findViewById(R.id.Button01); mTimer = new Timer(); mHandler = new Handler(){ @Override public void handleMessage(Message msg) { switch (msg.what){ case UPDATE_TEXT: Calendar cal = Calendar.getInstance(); mButton.setText(cal.toString()); break; } } }; mTimerTask = new TimerTask() { @Override public void run() { Log.d("AndroidTimerDemo", "timer"); mHandler.sendEmptyMessage(UPDATE_TEXT);/* // It doesn't work updating the UI inside a timer. Calendar cal = Calendar.getInstance(); mButton.setText(cal.toString());*/ } }; mTimer.schedule(mTimerTask, 1000, 1000); }} 现在哪个2d游戏框架/引擎好用? Android,桌面快捷方式toast屏蔽问题?急急急!!!!在线等!!!! AVD Manager问题,跪求大神,谢谢了 关于类似于短信通知功能实现的问题!!马上结贴!! android dialog输入框被遮蔽 求求求、、小问题。求办法、 请教android手机应用层开发中用到的xml 解析器? Android import 包装问题 如何通过URI获取数据库表指定列的数据类型? Scoket 客户端收消息 阻塞问题 调查一下,各位用 android 做过什么项目 fb接口pan_display使用的一点问题
android.os.Handler 看它的API文档。
private Button mButton;
private Timer mTimer;
private TimerTask mTimerTask; /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); mButton = (Button) findViewById(R.id.Button01); mTimer = new Timer(); mTimerTask = new TimerTask() { @Override
public void run() {
Log.d("AndroidTimerDemo", "timer");
Calendar cal = Calendar.getInstance();
mButton.setText(cal.toString());
}
}; mTimer.schedule(mTimerTask, 1000, 1000);
}
}在 Android 平台上,UI 单元必须在 Activity 的 context 里刷新。 为了达到想要的效果,可以使用 Message Handler。在定时器响应函数里发送条消息,在 Activity 里响应消息并更新文本。public class AndroidTimerDemo extends Activity {
protected static final int UPDATE_TEXT = 0;
private Button mButton;
private Timer mTimer;
private TimerTask mTimerTask;
private Handler mHandler;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); mButton = (Button) findViewById(R.id.Button01); mTimer = new Timer(); mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case UPDATE_TEXT:
Calendar cal = Calendar.getInstance();
mButton.setText(cal.toString());
break;
}
}
}; mTimerTask = new TimerTask() { @Override
public void run() {
Log.d("AndroidTimerDemo", "timer");
mHandler.sendEmptyMessage(UPDATE_TEXT);
/*
// It doesn't work updating the UI inside a timer.
Calendar cal = Calendar.getInstance();
mButton.setText(cal.toString());
*/
}
}; mTimer.schedule(mTimerTask, 1000, 1000);
}
}