首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未调用Android onResume

未调用Android onResume
EN

Stack Overflow用户
提问于 2011-04-17 04:15:16
回答 2查看 5.4K关注 0票数 0

我正在为安卓开发一个应用程序,我想让它在你按下home键(onPause)时暂停音乐。这很好用,但是当我再次尝试启动游戏时,onResume、onRestart、onStart、onRestoreInstanceState和onCreate从未被调用过,并且它告诉我应用程序没有响应。在LogCat中没有显示异常...所以我不知道发生了什么。对于为什么会出现这种情况,有没有人有什么建议?

-EDIT-当应用程序暂停时,我在LogCat中收到以下错误:

04-16 20:09:32.659:错误/活动管理器(66):原因:广播意图{ act=android.intent.action.CLOSE_SYSTEM_DIALOGS cmp=com.android.settings/.widget.SettingsAppWidgetProvider (有附加内容)}

我的onPause()代码:

代码语言:javascript
复制
    public void onPause() {
    super.onPause();            
    panel.mediaPlayer.pause();
    panel.thread.running=false;
}

主应用程序线程:

代码语言:javascript
复制
        public void run() {
        running = true;
        while(running) {
            //new Canvas.
            Canvas c = null;
            //Update information
            update();
            //Draw everything to screen
            try {
                //Gets the canvas from the surfaceHolder.
                c = surfaceHolder.lockCanvas(null);
                synchronized(surfaceHolder) {
                    //draw to the canvas                    
                    doDraw(c);
                    try {
                        Thread.sleep(gameSpeed);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }

                }
            } finally {
                if (c != null) {
                    surfaceHolder.unlockCanvasAndPost(c);
                }
            }
        }

mediaPlayer:

代码语言:javascript
复制
            mediaPlayer = new MediaPlayer();
    sublime = context.getResources().openRawResourceFd(R.raw.sublime);

    try {
        mediaPlayer.setLooping(true);
        mediaPlayer.setDataSource(sublime.getFileDescriptor(), sublime.getStartOffset(), sublime.getLength());
        mediaPlayer.prepare();

    } catch (IllegalArgumentException e1) {

    } catch (IllegalStateException e1) {

    } catch (IOException e1) {

    } 
    mediaPlayer.start();
EN

回答 2

Stack Overflow用户

发布于 2011-04-17 05:20:37

当你得到一个"application not responding“错误时,这意味着你的活动在主应用程序线程上花费了太长的时间。确定您在主应用程序线程上所做的所有工作,并将速度较慢的工作迁移到后台线程或AsyncTask

票数 2
EN

Stack Overflow用户

发布于 2011-04-18 12:33:46

我想我可能知道我的错误是什么:当在SurfaceView上调用onSizeChanged时,它正在运行一些不需要的代码(我猜当您暂停活动并查看其他内容时,可能会发生这种情况)……我去查查看。谢谢大家!

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

https://stackoverflow.com/questions/5689316

复制
相关文章

相似问题

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