Я работаю с xamarin и CocosSharp, но у меня скучная проблема, которая заняла у меня два дня.
Я делю экран с помощью CCRenderTexture:
CCRenderTexture renTexture = new CCRenderTexture(size, sizePixel);
renTexture.Sprite.AnchorPoint = CCPoint.AnchorMiddle;
renTexture.BeginWithClear(CCColor4B.White);
App.Current.paper.Visit();
renTexture.End();
ScheduleOnce(
async (t) =>
{
MemoryStream ms = new MemoryStream();
renTexture.SaveToStream(ms, CCImageFormat.Jpg);
await DependencyService.Get<IShareControl>().ShareImageAsync(ms,
App.Current.formatShare,
renTexture.Texture.ContentSizeInPixels.Width,
renTexture.Texture.ContentSizeInPixels.Height);
}
, 0f
);
IShareControl - это спросит пользователя, каким образом он хочет поделиться изображением. Их выбирают все приложения, поддерживающие изображение.
Здесь возникает проблема, возвращаясь к моему заявлению:
Если нажать кнопку «Домой», а затем кнопку «Приложения» и выбрать «Все», все будет хорошо.
Однако, если вы нажмете кнопку «Назад», она вернется в мое приложение, но экран CocosSharp остановится и больше не будет обновляться, но если это произойдет, и я нажму кнопку «Домой», а затем вернусь в свое приложение, все снова работает.
Любые предложения о том, как справиться с этим?
Дополнительная информация:
Окно вывода:
10-27 12: 40: 41.857 I / SurfaceView (24433): updateWindow - onWindowVisibilityChanged, видимость = 4, это = md5b91140b71aacd300338857cebaa38ef2.CCGameView {691154f VFE ...... ........ 0 , 0-1920,1080 # 27}
10-27 12: 40: 41.916 V / PhoneWindow (24433): DecorView setVisiblity: visibility = 0, Parent = ViewRoot {9dfee71 com.companyname.PneumaticDeveloper / md53779371d6f0a32e3c85c9cee64e3c85cf.MainActivity, 470a = Магистратура]
10-27 12: 40: 41.919 I / SurfaceView (24433): updateWindow - onWindowVisibilityChanged, visibility = 0, this = md5b91140b71aacd300338857cebaa38ef2.CCGameView {691154f VFE ...... ........ 0,0- 1920,1080 # 27}
10-27 12: 40: 41.952 D / Surface (24433): Surface :: connect (this = 0x76cf453600, api = 1)
10-27 12: 40: 41,953 W / libEGL (24433): формат [ANDROID_RECORDABLE]: 2
10-27 12: 40: 41.959 D / mali_winsys (24433): EGLint new_window_surface (egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, egl_color_buffer_format *, EGLxoole возвращает 0 000)
10-27 12: 40: 41,968 D / Поверхность (24433): Поверхность :: отключить (это = 0x76cf450c00, api = 1)
10-27 12: 40: 41,969 D / GraphicBuffer (24433): отмена регистрации, ручка (0x76d1f3a7c0) (ш: 1080 ч: 1920 с: 1088 f: 0x2 u: 0x000b00)
10-27 12: 40: 41,970 D / GraphicBuffer (24433): отмена регистрации, ручка (0x76cd4d3100) (ш: 1080 ч: 1920 с: 1088 f: 0x2 u: 0x000b00)
10-27 12: 40: 41,970 D / GraphicBuffer (24433): отмена регистрации, ручка (0x76cd4d3ac0) (ш: 1080 ч: 1920 с: 1088 f: 0x2 u: 0x000b00)
10-27 12: 40: 41,979 W / MALI (24433): winsysp_window_buffer_get: 2379: [MALI] window-> dequeueBuffer Failed, вернуть -19 ... ...
10-27 12: 40: 41.979 E / MALI (24433): gles_state_set_error_internal: 69: [MALI] GLES ctx: 0x76cf2a9ec8, код ошибки: 0x505
10-27 12: 40: 42.111 D / (24433): # 00 pc 000000000000e67c /system/lib64/libutils.so (_ZN7android9CallStackC2EPKci + 92)
10-27 12: 40: 42.111 D / (24433): # 01 ПК 000000000089b3b0 /system/vendor/lib64/egl/libGLES_mali.so (MtkMali_DumpCallStack + 48)
10-27 12: 40: 42.111 D / (24433): # 02 ПК 0000000000838b14 /system/vendor/lib64/egl/libGLES_mali.so
10-27 12: 40: 42.111 D / (24433): # 03 шт 00000000007f2abc /system/vendor/lib64/egl/libGLES_mali.so
10-27 12: 40: 42.111 D / (24433): # 04 ПК 00000000007f0c14 /system/vendor/lib64/egl/libGLES_mali.so
10-27 12: 40: 42.111 D / (24433): # 05 шт 00000000007eeda0 /system/vendor/lib64/egl/libGLES_mali.so
10-27 12: 40: 42.111 D / (24433): # 06 шт 0000000000079554
10-27 12: 40: 42.111 D / MALI (24433): gles_state_set_error_internal: 70: [MALI] Информация об ошибке GLES: не удалось выделить память ЦП
Тема закончена: # 15
O нить 0xf foi fechado com o código 0 (0x0).
Тема закончена: # 13
O нить 0xd foi fechado com o código 0 (0x0).
10-27 12: 40: 55.506 I / ViewRootImplMainActivity: анализ ключа ANR: в данный момент событие ключа отсутствует.
10-27 12: 40: 55.507 I / ViewRootImplMainActivity: анализ ключа ANR: предыдущее событие null, окончание в 1969-12-31 21: 00: 00.000
10-27 12: 40: 55.507 I / ViewRootImplMainActivity: ANR Анализ движения: в данный момент события движения нет.10-27 12: 40: 55.507 I / ViewRootImplMainActivity: ANR Motion Analyze: предыдущее событие MotionEvent {action = ACTION_UP, actionButton = 0, id [0] = 0, x [0] = 438.77145, y [0] = 127.88159, toolType [0] = TOOL_TYPE_FINGER, buttonState = 0, metaState = 0, flags = 0x0, edgeFlags = 0x0, pointerCount = 1, historySize = 0, eventTime = 65456569, downTime = 65456470, deviceId = 9, source = 0x1002}, окончание в 2018 году -10-27 12: 40: 28,921
10-27 12: 40: 55.566 I / art (24433): нить [3, tid = 24439, WaitingInMainSignalCatcherLoop, нить * = 0x76f7697400, peer = 0x2ac050d0, «Улавливатель сигналов»]: реагирование на сигнал 3
Это случилось даже без обмена.
Открыв свое приложение, я щелкнул по уведомлению, открывшему другое приложение, при возврате в мое приложение с помощью кнопки «Назад» происходит ошибка. В чем разница между возвратом в приложение с помощью кнопки «Назад» или «Приложения»?