Я читал и просматривал touchEvents
, главным образом потому, что мой сборщик мусора взрывается при длительном касании / событие слайда ИЛИ много событий касания . Если я не прикасаюсь к телефону, он просто бездействует как ~ 5 объектов, как вы можете видеть из первых нескольких GC_EXPLICIT
, которые я выполнил из DDMS. Затем я начал касаться экрана и скользить по нему, и объекты взлетели примерно на 13513 объектов и фактически вызвали GC_FOR_MALLOC
, который занимает более 100 мс. Вот мой простой тестовый код, а ниже - журнал тега dalvicvm. Если у вас есть документация по обходным путям или причинам, или, возможно, даже просто еще одно подробное обсуждение этого, я был бы очень признателен! Ура и удачи в ваших начинаниях.
[код]
public class testClass extends Activity implements IOnSceneTouchListener{
int numberOfTouches = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
}
@Override
public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {
numberOfTouches++;
return false;
}
}
[logcat]
06-28 15:24:55.317: DEBUG/dalvikvm(2501): GC_EXPLICIT freed 5 objects / 128 bytes in 53ms
06-28 15:24:55.903: DEBUG/dalvikvm(2501): GC_EXPLICIT freed 5 objects / 136 bytes in 59ms
06-28 15:24:56.708: DEBUG/dalvikvm(2501): GC_EXPLICIT freed 5 objects / 128 bytes in 59ms
06-28 15:25:06.614: DEBUG/dalvikvm(2501): GC_EXPLICIT freed 6 objects / 168 bytes in 58ms
06-28 15:25:09.833: DEBUG/dalvikvm(2501): GC_EXPLICIT freed 7 objects / 192 bytes in 65ms
06-28 15:25:14.270: DEBUG/dalvikvm(2501): GC_EXPLICIT freed 8 objects / 232 bytes in 59ms
06-28 15:25:18.294: DEBUG/dalvikvm(2501): GC_EXPLICIT freed 6 objects / 160 bytes in 59ms
06-28 15:25:33.942: DEBUG/dalvikvm(1103): GC_FOR_MALLOC freed 13513 objects / 1403264 bytes in 121ms
06-28 15:26:53.684: DEBUG/dalvikvm(2139): GC_EXPLICIT freed 140 objects / 6960 bytes in 99ms
06-28 15:26:58.731: DEBUG/dalvikvm(1215): GC_EXPLICIT freed 668 objects / 71136 bytes in 117ms
06-28 15:27:31.637: DEBUG/dalvikvm(1103): GC_FOR_MALLOC freed 13962 objects / 1504296 bytes in 122ms
06-28 15:27:44.723: DEBUG/dalvikvm(2501): GC_EXPLICIT freed 63 objects / 2152 bytes in 59ms
06-28 15:27:46.676: DEBUG/dalvikvm(2501): GC_EXPLICIT freed 5 objects / 128 bytes in 65ms
06-28 15:27:47.238: DEBUG/dalvikvm(2501): GC_EXPLICIT freed 5 objects / 128 bytes in 58ms
Я еще не решил проблему, но наткнулся на эту замечательную статью, посвященную именно этой проблеме: Проблемы с сенсорным экраном Android
[править] как сказал Страцка, это, скорее всего, из-за наводнения. Однако моя реальная проблема связана с распределениями, которые выполняются для каждого события? Есть ли способ повторно использовать эти события / объекты для ограничения распределения из-за прикосновения?
В настоящее время я использую andEngine ] и touchEvents объединены в пул, поэтому должно быть не более ~ 5, когда-либо выделяемых с нуля; иначе они просто используют повторно, не так ли?
Спасибо за любые идеи ....