Я делаю приложение, в котором я непрерывно меняю фон макета, как переворачивание фона, я реализую изменение фона с помощью функции Activity.runOnUiThread()
, поскольку это функция пользовательского интерфейса, и жду 2 секунды с использованием Thread().sleep()
, но приложение показывает только цвет макета, который я упомянул в конце.
package com.tutorial.flasher;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
//import android.os.SystemClock;
//import android.os.SystemClock;
import android.widget.LinearLayout;
public class flasher extends Activity {
/** Called when the activity is first created. */
LinearLayout llaLayout;
Thread th = new Thread("ThreadOne");
Activity _activity = new Activity();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
llaLayout = (LinearLayout)findViewById(R.id.layo);
Thread t1 = new Thread(new Runnable() {
public void run() {
try
{
Thread.sleep(2000);
}
catch (Exception e) {
// TODO: handle exception
}
}
});
t1.start();
t1.run();
t1.stop();
_activity.runOnUiThread(new Runnable(){
public void run(){
llaLayout.setBackgroundColor(Color.parseColor("#00FF00"));
}
});
//t1.currentThread();
t1.start();
t1.run();
t1.stop();
_activity.runOnUiThread(new Runnable(){
public void run(){
//Color BLUE of layout
llaLayout.setBackgroundColor(Color.parseColor("#0000FF"));
}
});
}
}
И изменения пользовательского интерфейса, и запуск потока будут происходить в цикле (который не показан), но приложение меняет цвет макета только один раз.
Спасибо,
Sid