Огромная задержка между вызовом startActivity и запуском onCreateAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Гость
 Огромная задержка между вызовом startActivity и запуском onCreate

Сообщение Гость »


У меня возникла проблема с задержкой во времени между вызовом startActivity() и самой первой инструкцией метода onCreate() запускаемого действия. Я даже добавил код для измерения этого времени, и оно составляет в среднем более 20 секунд.

Вот важный код исходного действия под названием CameraActivity:

объект-компаньон{ lateinit var time1: ZonedDateTime lateinit var time2: ZonedDateTime lateinit var time3: ZonedDateTime ... } ... личное развлечение takePicture(){ waitDialog = MyDialogFragment(getString(R.string.wait),false,this) waitDialog.show(supportFragmentManager,"") //почему диалоговое окно не отображается??? пытаться { time1 = ZonedDateTime.now() val cellGrid = ImageProcessing.getCellGrid(currentImage) val Puzzle = Puzzle(MLUtilities.predictPuzzle(cellGrid)) val намерение = Intent(thisActivity, GameActivity::class.java) Intent.putExtra("case", Case.CAMERA.toString()) Intent.putExtra("этап", Stage.INPUT.toString()) повтор (9) { я -> повтор (9) { j -> Intent.putExtra("value$i$j",puzzle.get(i, j)) } } time2 = ZonedDateTime.now() thisActivity.startActivity(намерение) }catch(e: Исключение){ Log.e(MainActivity.TAG,"",e) waitDialog.dismiss() } окончательно { waitDialog.dismiss() } } Вот код вызываемого действия:

переопределить fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) CameraActivity.time3 = ZonedDateTime.now() Log.d(MainActivity.TAG,"Это время, необходимое для распознавания головоломки и загрузки ее в намерение (в секундах): "+((CameraActivity.time2.toInstant().toEpochMilli()-CameraActivity.time1.toInstant ().toEpochMilli()).toDouble()/1000).toString()) Log.d(MainActivity.TAG, «Вот сколько времени проходит между вызовом метода startActivity и») Log.d(MainActivity.TAG, "onCreate наконец-то запускается (через секунды): "+((CameraActivity.time3.toInstant().toEpochMilli()-CameraActivity.time2.toInstant().toEpochMilli()).toDouble() /1000).toString()) ... } Я запустил этот код шесть раз и использовал его для записи в журнал значительных промежутков времени (удалял части, которые затрудняли чтение):

Вот сколько времени потребуется, чтобы распознать головоломку и загрузить ее в намерение (в секундах): 2,189. Это время, которое проходит между вызовом метода startActivity и onCreate наконец запускается (в секундах): 37.806 Вот сколько времени требуется, чтобы распознать головоломку и загрузить ее в намерение (в секундах): 2,099. Это время, которое проходит между вызовом метода startActivity и onCreate наконец запускается (в секундах): 20.074 Вот сколько времени требуется, чтобы распознать головоломку и загрузить ее в намерение (в секундах): 2,123. Это время, которое проходит между вызовом метода startActivity и onCreate наконец запускается (в секундах): 53.911 Вот сколько времени требуется, чтобы распознать головоломку и загрузить ее в намерение (в секундах): 0,69. Это время, которое проходит между вызовом метода startActivity и onCreate наконец запускается (в секундах): 19,981 Вот сколько времени требуется, чтобы распознать головоломку и загрузить ее в намерение (в секундах): 0,843. Это время, которое проходит между вызовом метода startActivity и наконец-то запускается onCreate (в секундах): 5,461 Вот сколько времени требуется, чтобы распознать головоломку и загрузить ее в намерение (в секундах): 1,014. Это время, которое проходит между вызовом метода startActivity и onCreate наконец запускается (в секундах): 19.813 Еще одна проблема, которая, похоже, связана с этим (хотя она может быть отдельной) заключается в том, что waitDialog не отображается. Оно было задумано как сообщение, которое дает понять, что захваченное изображение обрабатывается, пока пользователь ждет.

Я был бы очень признателен за любую помощь, чтобы заставить это работать, поскольку из-за этого функции, над которыми я работал больше всего, кажутся отстающими, хотя на самом деле это не так. Это разрушает прекрасно работающую игру, и я понятия не имею, почему это происходит.

Следует отметить, хотя я не думаю, что это является причиной проблемы, что CameraActivity — это действие Views Camera2 API, а GameActivity — действие на основе Compose.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»