Почему мое приложение работает медленно, когда я использую обработчик и простой вид? - PullRequest
1 голос
/ 23 сентября 2019

У меня проблемы со скоростью моего приложения.
Мое приложение использует обработчик с таймером, который вычисляет координаты различных объектов, отображаемых на экране, и делает недействительным простое представление.Он работает довольно хорошо, когда запускается, но для начала требуется 3 или 4 секунды, а logcat часто печатает «пропущенные кадры».Я не очень хорошо разбираюсь в потоках, поэтому я предполагаю, что проблема в этом.
Буду признателен, если вы посмотрите на мою проблему:)

Вот код, о котором я говорюabout:

public void resume() {
    keepGoing = true;

    moveFlag = false;

    final Timer timer = new Timer();
    timer.schedule(new TimerTask() {
        @Override
        public void run() {
            mHandler.post(new Runnable() {
                @Override
                public void run() {

                    // ARRET DU CHRONOMETRE
                    if (!keepGoing){
                        cancel();
                    }

                    // MOVING OF THE OBJECTS

                    // REFRESHING THE VIEW
                    mView.invalidate();
                }
            });
        }
    }, 0, Interval);
}

Большое спасибо !!

Редактировать: Вот мои результаты logcat, когда я также начинаю занятие:

09-23 21:20:08.893 16382-16382/com.example.myapplication D/ViewRootImpl: #1    mView = com.android.internal.policy.PhoneWindow$DecorView{760d030 I.E...... R.....ID 0,0-0,0}  
09-23 21:20:08.933 16382-16382/com.example.myapplication I/Choreographer: Skipped 75 frames!  The application may be doing too much work on its main thread.
09-23 21:20:08.973 16382-16382/com.example.myapplication W/DisplayListCanvas: DisplayListCanvas is started on unbinded RenderNode (without mOwningView)
09-23 21:20:09.163 16382-16382/com.example.myapplication D/ViewRootImpl: MSG_RESIZED_REPORT: ci=Rect(0, 0 - 0, 0) vi=Rect(0, 0 - 0, 0) or=1
09-23 21:20:09.213 16382-16382/com.example.myapplication I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@775d973 time:10307099
09-23 21:20:09.463 16382-16382/com.example.myapplication D/ViewRootImpl: #3 mView = null
...