首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android不被onResume调用的表面处理方法

Android不被onResume调用的表面处理方法
EN

Stack Overflow用户
提问于 2012-07-25 11:03:50
回答 1查看 3.1K关注 0票数 2

我是通过在表面视图中使用可运行线程来播放动画。当我第一次运行应用程序时,一切正常,动画播放正常。当我按回/主按钮并重新打开应用程序时,我得到一个没有动画的黑色屏幕,但是可运行的线程在我使用Log cat条目确认的背景上工作。

另外,我正在重写back按钮按事件,finish()在back按钮按下事件中被调用。

有谁能帮我弄清楚为什么在我恢复应用程序时不调用表面处理方法?

注:当我使用

代码语言:javascript
复制
android.os.Process.killProcess(android.os.Process.myPid());

在back按钮事件(而不是finish()方法)中,应用程序在onresume事件中正常工作。

提前谢谢你,蒂姆

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-26 08:25:20

我认为,您必须扩展SurfaceView类并侦听surfaceChanged方法。并在方法上再画一次。代码:

代码语言:javascript
复制
class MySurfaceView extends SurfaceView implements SurfaceHolder.Callback{  
        SurfaceHolder holder;
        public MySurfaceView(Context context) {  
            super(context); 
            holder = this.getHolder();
            holder.addCallback(this); 
        }  
        public void surfaceChanged(SurfaceHolder holder, int format, int width,  
                int height) {  
            //when surfaceChanged,i think you must make your view draw one time.

        }   
        public void surfaceCreated(SurfaceHolder holder) {  
            //surfaceCreated
        }    
        public void surfaceDestroyed(SurfaceHolder holder) {  
            //surfaceDestroyed
        }  

    } 

希望这能帮到你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11648291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档