java - Android/java初学语法题

标签 java android

所以我在看一个教程,我试图理解这个语法

  Thread thread = new Thread()
    {     
  //if i declare variables here i get errors
            public void run()
            {
            // ....define variables in function
           }
    }

这段代码是如何工作的?我想当线程对象被创建时,它定义了添加或“附加”一个函数到它的函数“列表”中?所以 thread.run() 或 thread.start() 可以稍后调用。我不确定我在猜测..有人可以启发我。从我在 run 函数中看到的教程,他是这样做的

//the same run that is in the Thread class
public void run()
{
  int timer = 0 ;
  while(timer < 5000)
  {
     sleep(100) ; 
     timer+=100;
  }
}

sleep 有什么作用?我用谷歌搜索但找不到任何好东西。在继续循环之前,它是否基本上停止当前应用程序 100 毫秒?这意味着 sleep 被调用了 50 次?我的数学很糟糕哈哈..但是如果是这样的话,上面的代码是否等同于

public void run()
{
  int timer = 0 ;
  while(timer < 50)
  {
     sleep(100) ; 
     timer++;
  }
}

不过我知道最简单的方法就是说 sleep(5000) ;

很明显,我对此一窍不通。所以我将不胜感激任何解释。越彻底越好,谢谢。抱歉,不知道如何使用代码标签..

最佳答案

这是不可能的,因为它就像尝试将实例变量放入一个不是

的实例中

可能..我们只为单个实例提供实现..你不能有

专门为单个对象定义的实例变量..和sleep(100)停止

的执行

当前线程持续 100 毫秒,它发生了 50 次..这意味着 50*100 毫秒..

关于java - Android/java初学语法题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6899530/

相关文章:

java - 如何在java中为wit.ai音频发送post http请求

java - 在 Eclipse 中将图像沿 y 轴向上移动

安卓.view.InflateException : Binary XML file line #3: Error inflating class <unknown>

java - 无法授权使用 Google api 客户端访问环聊聊天 api

java - 多用户应用程序需要更改任何属性

java - Map.entry和entrySet()泛型类型出错

php - Android 使用 PHP 连接 MySQL

Android ICS Activity 从淡入/淡出到幻灯片的转换

java - 在 Libgdx 中实现简单运动模糊的意外结果

android - 错误 : [Dagger/MissingBinding] Map<Class<? 扩展 ViewModel>,如果没有 @Provides-annotated 方法,就无法提供 Provider<ViewModel>>