|
Android 5 multithreading
|
|||
---|---|---|---|
#18+
Написал вьюшку с фоновой отрисовкой в Bitmap. Код под спойлером, он большой, но простой. Два битмапа. Один отображается, во второй рисуется картинка по запросу. После прорисовки битмапы переключаются. На android 4xx все работает отлично. На android 5 все тормозит, большие лаги, в логах идет сообщение - Choreographer: Skipped 60 frames! The application may be doing too much work on its main thread При этом, если я из процедуры drawThread() просто уберу строку: synchronized (this) { useBMP = n; } или уберу переключение через if( useBMP==0 ) n=0; то все работает плавно и быстро! Безусловно - с артефактами. Я в тупике, не могу понять причину этого. Интересует любая идея и любая информация которая может помочь. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2015, 18:14 |
|
Android 5 multithreading
|
|||
---|---|---|---|
#18+
Петровичч, через Handler попробуй, вместо синхронизации. У меня на пятерке все работает без тормозов и ругательств. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2015, 18:49 |
|
Android 5 multithreading
|
|||
---|---|---|---|
#18+
wadman, Я не понял идею. Можешь чуть подробнее объяснить. В принципе синхронизация тут не очень нужна. Без нее на 4 андроиде все работает, а на андроид 5 все также тормозит. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2015, 18:57 |
|
Android 5 multithreading
|
|||
---|---|---|---|
#18+
Подробнее тут https://developer.android.com/intl/ru/training/multiple-threads/communicate-ui.html Даже пример с битмапом приводят. Вкратце: создаешь Handler-ы (это очередь сообщений) для активности и для потока. И с помощью них общаешься между потоками в порядке очереди. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2015, 09:04 |
|
Android 5 multithreading
|
|||
---|---|---|---|
#18+
wadman, Переделал на Handler. Ничего не изменилось. Android 4 работает нормально, Android 5 тормозит. Если отключить переключение битмапов и использовать только один - все работает быстро и гладко.. Но рисует артефакты.. Хенделер это просто способ передать данные, он нужен при сложном взаимодействии тредов. У меня же все просто - нужно только сказать какой битмап использовать. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2015, 02:02 |
|
|
start [/forum/topic.php?fid=13&msg=38944149&tid=1331361]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 137ms |
0 / 0 |