所以我環顧四周,看到了類似的東西,但他們都與地理位置的東西,我試圖做的是一個簡單的計時器的幾個職位。基本上我使用TimerTask作爲一個活動類中30秒的倒計時。每次調用TimerTask時,應用程序都會崩潰。出於上下文的目的,這是來自使用startActivityForResult調用來調用它的父項的子活動。Android的TimerTask崩潰程序致命的異常時間-0
public class NewLevelActivity extends Activity {
int time = 30;
int level = 1;
TextView text;
TimerTask task;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.new_level);
text = (TextView) findViewById(R.id.newLevelText);
level = WholettheballoutActivity.level;
task = new TimerTask() {
public void run() {
time--;
//text.setText("Level " + Integer.toString(level)+ " will start in " +Integer.toString(time) + " seceonds.");
new Timer().schedule(task,1000);
}
};
new Timer().schedule(task,1000);
}
@Override
protected void onPause() {
super.onPause();
}
@Override
protected void onResume() {
super.onResume();
}
}
的logcat中顯示了這種
01-03 01:08:57.630: ERROR/AndroidRuntime(19618): FATAL EXCEPTION: Timer-0
01-03 01:08:57.630: ERROR/AndroidRuntime(19618): android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
01-03 01:08:57.630: ERROR/AndroidRuntime(19618): at android.view.ViewRoot.checkThread(ViewRoot.java:3441)
01-03 01:08:57.630: ERROR/AndroidRuntime(19618): at android.view.ViewRoot.requestLayout(ViewRoot.java:586)
01-03 01:08:57.630: ERROR/AndroidRuntime(19618): at android.view.View.requestLayout(View.java:10781)
01-03 01:08:57.630: ERROR/AndroidRuntime(19618): at android.view.View.requestLayout(View.java:10781)
01-03 01:08:57.630: ERROR/AndroidRuntime(19618): at android.view.View.requestLayout(View.java:10781)
01-03 01:08:57.630: ERROR/AndroidRuntime(19618): at android.view.View.requestLayout(View.java:10781)
01-03 01:08:57.630: ERROR/AndroidRuntime(19618): at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:257)
01-03 01:08:57.630: ERROR/AndroidRuntime(19618): at android.view.View.requestLayout(View.java:10781)
01-03 01:08:57.630: ERROR/AndroidRuntime(19618): at android.widget.TextView.checkForRelayout(TextView.java:6052)
01-03 01:08:57.630: ERROR/AndroidRuntime(19618): at android.widget.TextView.setText(TextView.java:2826)
01-03 01:08:57.630: ERROR/AndroidRuntime(19618): at android.widget.TextView.setText(TextView.java:2691)
01-03 01:08:57.630: ERROR/AndroidRuntime(19618): at android.widget.TextView.setText(TextView.java:2666)
01-03 01:08:57.630: ERROR/AndroidRuntime(19618): at org.kizik.WLTBO.NewLevelActivity$1.run(NewLevelActivity.java:43)
01-03 01:08:57.630: ERROR/AndroidRuntime(19618): at java.util.Timer$TimerImpl.run(Timer.java:284)
我走上與嘗試設置視圖的文本的問題,但事實並非如此,因爲註釋掉集文字部分之後仍然是錯誤的
我會嘗試做一個乾淨的版本,並確保它下載好。我無法統計我認爲Eclipse下載apk到我的設備的次數,並且我正在運行舊代碼... – nmjohn 2012-01-03 07:34:22