有人建議我使用此代碼,使我的方法的時候一定時間後執行的問題,我修改了一下,現在我有:與可運行
private Handler mHandler = new Handler();
private Runnable mUpdateTimeTask = new Runnable() {
public void run() {
final long start = mStartTime;
// Get the difference in ms
long millis = SystemClock.uptimeMillis() - start;
// Format to hours/minutes/seconds
int mTimeInSec = (int) (millis/1000);
// Do your thing
Location location = tracker.getLastKnownLocation(best);
RetrieveAvgPower(location);
// Update at the next second
mHandler.postAtTime(this, 1000);//start + ((mTimeInSec + 10) * 1000));
}
};
我嘗試啓動和停止它與:
public void onClick(View v) {
switch (v.getId()) {
case R.id.start:
mStartTime = System.currentTimeMillis();
mHandler.removeCallbacks(mUpdateTimeTask);
mHandler.postDelayed(mUpdateTimeTask, 1000);
break;
case R.id.stop:
mHandler.removeCallbacks(mUpdateTimeTask);
break;}}
但是,有一個問題。首先,我的方法設置文本並將一行寫入日誌文件,但如果我使用上面的代碼文本沒有被設置,但是所有信息都會自動寫入日誌文件。另一件事是我不能停止runnable - 它開始執行程序後似乎沒有響應和崩潰,如果我試圖按停止按鈕。我做錯了什麼以及如何解決?
你應該使用asynctask – Falmarri 2010-10-22 17:35:19