当前位置: 首页 > 知识库问答 >
问题:

活性、线程问题

施招
2023-03-14

我是机器人的新手,我有一些未解决的问题:

>

  • 我的项目有两个活动:

    • 欢迎(显示layout1)。
    • MainDisplay(显示layout2)。
    // Welcome.java
    public class Welcome extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.layout1);
    run();
    }

    public void startMainAct() {
        Intent dIntent = new Intent(Welcome.this, MainDisplay.class);
        Welcome.this.startActivity(dIntent);
        finish();
    }
    
    public void run() {     
        try{                                            
            Thread.sleep(3000);         
        }                                               
        catch(Exception ex)                             
        {                                               
        }                                               
        finally{
            startMainAct();     
        }       
    }       
    

    }

    主显示器.java 公共类主显示器扩展活动实现可运行 { 私有静态线程m_thread = 空;

    }

    >

  • 当我使用Eclipse作为Android的新配置运行(启动欢迎活动)时,我看到AVD中出现了两个同名的应用程序(一个运行欢迎活动,另一个运行主显示活动)。我不明白,为什么有两个而不是只有一个将运行第一个活动(欢迎)?

    当它运行时,我甚至看不到欢迎活动的布局(只是一个空白的白色屏幕),但在3s后,它仍然启动其他活动?

    当我为欢迎活动实现Runnable时,它工作正常吗?你能解释一下它是如何工作的吗?

    非常感谢!

  • 共有2个答案

    壤驷建德
    2023-03-14

    当我使用 Eclipse 以 Android 新配置(启动欢迎活动)运行时,我看到 AVD 中存在两个同名的应用程序(一个运行欢迎活动,另一个运行主显示器活动)。我不明白这里,为什么有两个,但不仅仅是一个将运行第一个活动(欢迎)?

    您可能有

    <category android:name="android.intent.category.LAUNCHER" />
    

    当它运行时,我甚至看不到欢迎活动的布局(只是一个空白的白色屏幕),但在3s后,它仍然启动其他活动?

    您调用< code>run(),它调用主< code >线程上的< code>sleep(),这将阻止您的< code>UI在这3秒钟内做任何事情,然后一旦时间到了,您就启动另一个< code >活动。这几乎总是,如果不是总是,一个坏主意。

    当我为欢迎活动实现Runnable时,它工作正常吗?你能解释一下它是如何工作的吗?

    您在单独的< code >线程上运行它,以便< code >线程而不是< code>UI线程Hibernate。

    贺飞
    2023-03-14

    不要使用Thread.sleep()来保存您的UI。
    使用Timer延迟3秒并跳转到Mainactive

    new Timer().schedule(new TimerTask() {
    
        @Override
        public void run() {
            // TODO Auto-generated method stub
            Intent dIntent = new Intent(Welcome.this, MainDisplay.class);
            Welcome.this.startActivity(dIntent);
            finish();
        }
    }, 3000); 
    
     类似资料:
    • 问题内容: 有没有人试图使用Swing来构建适当的多缓冲渲染环境,并且可以在上面添加Swing用户界面元素? 在这种情况下,我在背景上绘制了一个动画红色矩形。不需要每帧更新背景,因此我将其渲染到BufferedImage上,然后仅重画清除矩形先前位置所需的部分。请参见下面的完整代码,这扩展了以前的线程通过@trashgod给出的例子,在这里。 到目前为止,一切都很好; 动画流畅,CPU使用率低,无

    • 问题内容: 这是关于Java线程词汇的一个非常基本的问题。 我看不到任何可能的重复项,但可能存在。 Oracle文档中“ 活着 ”一词指的是什么? 是方法尚未完成时还是其他参数? 问题答案: 根据您提到的Javadoc: 如果线程已经启动但尚未死亡,则该线程是活动的。 线程在调用其方法时“启动”,并在其方法结束时“死亡” ,或在调用时(现在已弃用)。因此,是的,当线程的方法仍在进行中时,该线程为“

    • 它是工作的,因为我的listener类很好地接收消息,但日志看起来很奇怪。开始后,看起来只有一个线程在处理消息,即使队列中有几个线程在等待: 正如您所看到的,最终只有容器#5用于处理所有剩余的消息。消息不是并行处理的,定义的并发性似乎没有被使用。我不知道这是不是完全相同的问题,但我看过这篇文章,但我没有使用ActiveMQ,我没有这个预取选项。 你能解释一下我为什么会有这种行为吗。是弹簧配置错误还

    • 问题内容: 如果从多个线程访问Java中的变量,则必须确保安全发布它们。这通常意味着使用或。 我的印象是,我的一些同事没有认真对待这个问题,因为他们“从未听说过,他们的程序已经工作了很多年”。 所以我的问题是: 有人可以提供一个示例Java程序/片段来可靠地显示数据可见性问题。 我认为运行程序并看到意外的NPE或过时的变量值会比理论上的解释更有帮助,这是无法证明的。 非常感谢你的帮助! 更新: 只

    • 我正在学习Java的易失性,我的代码是这样的。 我知道如果flag没有volatile,线程就不会存在。这是能见度的问题。 但是,如果我在while循环中编写一些代码,如,t1线程将读取新值并停止循环。 我知道如何使用volatile来解决可见性问题,所以我的问题是: 为什么当我写?

    • 问题内容: 你好,我们已经在java 1.6,tomcat 6,oracle 11g上迁移了Java Web应用程序,但是现在一段时间站点关闭后我们遇到了问题:我们正在使Java堆内存不足错误并且许多线程处于等待状态。tomcat被绞死,我们的网站被压倒 信息:为地址为空且端口为80的连接器创建的最大线程数(200),2013年2月21日,这里是线程日志: 日志 结束 请指导。 谢谢阿鲁 问题答案