Я разрабатываю приложение под android, и уже в течении долгого времени не могу решить одну проблему, а именно:
У меня есть фрагмент, в котором surfaceview с потоком рисования для постоянной перерисовки. Само рисование работает отлично, но вот переключение между страницами - это целая проблема. Я пробовал кучу способов, дабы решить эту проблему. Executor
использовал, пробовал возвращать return при переключении, ещё несколько способов и всё без толку.
Вот мой код создания surfaceview
@Override
public void surfaceCreated(SurfaceHolder holder) {
if (drawThread == null || drawThread.getState() == Thread.State.TERMINATED) {
drawThread = new DrawThread(getHolder(), getContext());
drawThread.setRunning(true);
executorThread.submit(drawThread);
}
if (!drawThread.isAlive())
drawThread.start();
Это мой последний вариант реализации создания потока рисования в surfaceview
В методе surfaceDestroyed()
ничего нет на данный момент.
Вот поток рисования:
public void run() {
Canvas canvas;
while (mRunning) {
canvas = null;
try {
canvas = mSurfaceHolder.lockCanvas();
synchronized (mSurfaceHolder) {
drawGridLine(canvas);
drawGridText(canvas);
drawAxis(canvas);
if (!isOverMathCalc && !isZoom)
drawGraphics(canvas);
}
} catch (NullPointerException e) { /* */ }
finally {
if (canvas != null)
mSurfaceHolder.unlockCanvasAndPost(canvas);
}
}
}
Как мне сделать нормальное завершение потока рисования и потом очередной его запуск после того, как мы опять перешли на страницу рисования. Так как иначе при переключении фрагментов программа тормозит, переключение происходит при помощи NavigatorDrawer
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Вот если зайти на саму карту гугл и ввести в поиск магазины, то будет примерно такой результат
Как постоянно получать координаты курсора по X и Y с помощью Javascript?
Не могу скрыть в указанных браузерах один параграфМне нужно убрать предложение о бесплатном звонке именно из safari и ie, т