我正在使用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:可见性= 0,父级= ViewRoot {9dfee71 com.companyname.PneumaticDeveloper / md53779371d6f0a32e3c85c9cee64ae35cf.MainActivity,ident = 0},此= DecorView [4767bb] 10-27 12:40:41.919 I / SurfaceView(24433):updateWindow-onWindowVisibilityChanged,可见性= 0,此= md5b91140b71aacd300338857cebaa38ef2.CCGameView {691154f VFE ...... ........ 0,0- 1920,1080#27} 10-27 12:40:41.952 D /曲面(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 *,EGLBoolean)返回0x3000 10-27 12:40:41.968 D /曲面(24433):Surface :: disconnect(this = 0x76cf450c00,api = 1) 10-27 12:40:41.969 D / GraphicBuffer(24433):注销,处理(0x76d1f3a7c0)(w:1080 h:1920 s:1088 f:0x2 u:0x000b00) 10-27 12:40:41.970 D / GraphicBuffer(24433):取消注册,处理(0x76cd4d3100)(w:1080 h:1920 s:1088 f:0x2 u:0x000b00) 10-27 12:40:41.970 D / GraphicBuffer(24433):取消注册,处理(0x76cd4d3ac0)(w:1080 h:1920 s:1088 f:0x2 u:0x000b00) 10-27 12:40:41.979 W / MALI(24433):winsysp_window_buffer_get:2379:[MALI] window-> dequeueBuffer Failed,return -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 pc 000000000089b3b0 / system /供应商/lib64/egl/libGLES_mali.so(MtkMali_DumpCallStack + 48) 10-27 12:40:42.111 D /(24433):#02 pc 0000000000838b14 /system/vendor/lib64/egl/libGLES_mali.so 10-27 12:40:42.111 D /(24433):#03 pc 00000000007f2abc /system/vendor/lib64/egl/libGLES_mali.so 10-27 12:40:42.111 D /(24433):#04 pc 00000000007f0c14 /system/vendor/lib64/egl/libGLES_mali.so 10-27 12:40:42.111 D /(24433):#05 pc 00000000007eeda0 /system/vendor/lib64/egl/libGLES_mali.so 10-27 12:40:42.111 D /(24433):#06 pc 0000000000079554 10-27 12:40:42.111 D / MALI(24433):gles_state_set_error_internal:70:[MALI] GLES错误信息:无法分配CPU内存 线程完成:#15 在线程0xf中,线程0(0x0)。 线程完成:#13 在线程0xd中,线程0(0x0)。 10-27 12:40:55.506 I / ViewRootImplMainActivity:ANR密钥分析:当前没有密钥事件。 10-27 12:40:55.507 I / ViewRootImplMainActivity:ANR密钥分析:Previeous Event 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运动分析:上一个事件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,标志= 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,Thread * = 0x76f7697400,peer = 0x2ac050d0,“ Signal Catcher”]:对信号3做出反应
即使没有分享,也是如此。
在打开我的应用程序的同时,我单击了通知,该通知通过“后退”按钮返回到我的应用程序时打开了另一个应用程序,错误发生了。通过“后退”按钮或“应用程序”按钮返回到应用程序有什么区别?