relationship.xml の背景をある画像から別の画像に変更しようとしています。それは赤いイメージとして始まり、タイマーの後にコスモスのイメージに変わり、タイマーの後に再び赤に行くはずです. このコードを使用するとアプリがクラッシュするように見えますが、else ステートメントのステートメントをコメント アウトすると、アプリはクラッシュしません。何か案は?
boolean setred;
RelativeLayout layout;
Thread timer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(starting.rt.R.layout.relationship);
layout = (RelativeLayout) findViewById(starting.rt.R.id.relativelayout1);
setred = false;
timer = new Thread() {
public void run() {
try {
sleep(7000);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
if (setred) {
setred = false;
layout.setBackgroundResource(starting.rt.R.drawable.cosmos);
} else {
setred = true;
layout.setBackgroundResource(starting.rt.R.drawable.red);
}
}
}
};
timer.start();
これはログキャットです
06-17 16:23:08.347: E/AndroidRuntime(657): FATAL EXCEPTION: Thread-10
06-17 16:23:08.347: E/AndroidRuntime(657): android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
06-17 16:23:08.347: E/AndroidRuntime(657): at android.view.ViewRoot.checkThread(ViewRoot.java:2932)
06-17 16:23:08.347: E/AndroidRuntime(657): at android.view.ViewRoot.invalidateChild(ViewRoot.java:642)
06-17 16:23:08.347: E/AndroidRuntime(657): at android.view.ViewRoot.invalidateChildInParent(ViewRoot.java:668)
06-17 16:23:08.347: E/AndroidRuntime(657): at android.view.ViewGroup.invalidateChild(ViewGroup.java:2511)
06-17 16:23:08.347: E/AndroidRuntime(657): at android.view.View.invalidate(View.java:5279)
06-17 16:23:08.347: E/AndroidRuntime(657): at android.view.View.setBackgroundDrawable(View.java:7626)
06-17 16:23:08.347: E/AndroidRuntime(657): at android.view.View.setBackgroundResource(View.java:7535)
06-17 16:23:08.347: E/AndroidRuntime(657): at starting.rt.Base$1.run(Base.java:56)
06-17 16:23:08.386: W/ActivityManager(75): Force finishing activity starting.rt/.RelationshipTipsActivity