Я должен предупредить вас, что я новичок в разработке Android.Странная задержка при запуске моего приложения Android
Проблема: После запуска моего приложения у него черный экран и через несколько секунд он начинает рисовать то, что мне нужно. Я проверил рисунок нити уже начался, и уже привлек содержание в несколько раз, но экран по-прежнему черный :(
Что я пропускаю
Вот мой код:
активности
public class MainActivity extends Activity {
protected SurfaceView surface;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
surface = new GameSurfaceView(this);
setContentView(surface);
}
}
SurfaceView
public class GameSurfaceView extends SurfaceView implements SurfaceHolder.Callback {
protected DrawThread drawThread;
public GameSurfaceView(Context context) {
super(context);
getHolder().addCallback(this);
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
drawThread = new DrawThread(getHolder());
drawThread.start();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
drawThread.interrupt();
}
}
Рисунок резьбы
public class DrawThread extends Thread {
public static final long FPS = 30;
protected SurfaceHolder surfaceHolder;
public DrawThread(SurfaceHolder surfaceHolder) {
super();
this.surfaceHolder = surfaceHolder;
}
@Override
public void run() {
while (!isInterrupted()) {
Canvas canvas = null;
try {
long renderStartedAt = SystemClock.elapsedRealtime();
canvas = surfaceHolder.lockCanvas();
if (canvas != null) {
canvas.drawColor(Color.CYAN);
// TODO DRAW
}
long duration = (1000 - (SystemClock.elapsedRealtime() - renderStartedAt) * FPS)/FPS;
if (duration > 0) {
sleep(duration);
}
} catch (InterruptedException e) {
interrupt();
} finally {
if (canvas != null) {
surfaceHolder.unlockCanvasAndPost(canvas);
}
}
}
}
}
Вы делаете что-то, что блокирует пользовательский интерфейс? Обновление пользовательского интерфейса не произойдет, пока поток пользовательского интерфейса не будет доступен для его выполнения. – Kai
@ Кай, это все мой код, как вы можете видеть, я почти ничего не делаю в основной теме. – glagola