Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 活动结束时持久化位图_Android_Bitmap_Surfaceview - Fatal编程技术网

Android 活动结束时持久化位图

Android 活动结束时持久化位图,android,bitmap,surfaceview,Android,Bitmap,Surfaceview,安卓专家,我需要一些帮助。我是个机器人呆子。我有一个应用程序,需要从主UI线程外部使用画布绘制位图。我偶然发现了SurfaceView类并模拟了一个快速演示。我创建了一个单独的位图实例并绘制到其中。当surfaceView的OnDraw出现时,我将此位图复制到surfaceView中。在活动结束之前,例如,返回主屏幕,它工作得非常好。此时,SurfaceView线程似乎停止了,我似乎丢失了正在处理的位图图像。当你回到应用程序时,它会从头开始 出于性能原因,我想使用canvas 2D绘图调用从一个

安卓专家,我需要一些帮助。我是个机器人呆子。我有一个应用程序,需要从主UI线程外部使用画布绘制位图。我偶然发现了SurfaceView类并模拟了一个快速演示。我创建了一个单独的位图实例并绘制到其中。当surfaceView的OnDraw出现时,我将此位图复制到surfaceView中。在活动结束之前,例如,返回主屏幕,它工作得非常好。此时,SurfaceView线程似乎停止了,我似乎丢失了正在处理的位图图像。当你回到应用程序时,它会从头开始

出于性能原因,我想使用canvas 2D绘图调用从一个与主UI线程分离的线程创建位图图像。我需要每隔一段时间将位图输入主用户界面。当活动暂停或停止时,我需要保留位图图像并继续绘制(以保持其最新状态)

由于您必须在主UI线程中完成所有绘图,因此SurfaceView似乎是唯一的解决方案。但它也不像我希望的那样有效

我需要一个永远不会停止运行的后台任务或线程,我需要在那里创建一个位图图像,我需要每隔一段时间将该位图放入主用户界面(比如10 hz更新)


救命啊!如何完成此操作?

使用异步任务将图像绘制到ui上

但是,重新打开应用程序时需要重新绘制画布。如果要保存创建的位图,需要将其存储在某个位置。我认为这可以通过缓存来处理:

view.setDrawingCacheEnabled(true);
否则,请自行管理位图:

v1.setDrawingCacheEnabled(true); 
bitmap = Bitmap.createBitmap(v1.getDrawingCache());

创建一个独立的
过程对你有用吗?嗨,乌鸦,谢谢你的快速回复。你能详细解释一下吗?你是指使用C++、NDK和一个分离的过程吗?抱歉,我仍然是一个noob。您可以创建单独的
进程
,这在
Android清单
中不太受鼓励。但是单独的进程如何访问画布API呢?你能做到吗?那么如何创建这个独立的流程呢?好的,看起来您需要了解更多关于
服务的信息。现在,如果你不知道Android中的
服务
标签,你需要到文档中亲自阅读。谢谢,我刚刚阅读了关于AyncTasks和UI的内容,实际上非常及时!我还将研究缓存。非常感谢!没问题,很高兴我能帮忙。欢迎来到StackOverflow。你应该接受答案,把它从“未回答”列表中去掉。好吧,我不知道。不过,我想我还是等着看是否还有其他想法。那我就把它关上。