java - 一个将继续运行的线程?

标签 java android

我正在编写一些 Android 代码, 这是结构:(伪)

public class AThread extends Thread {
  public void run() {
    int i = 0;
    while(true){
      i++;
      System.out.println(i);
    }  
  }
}

然后我新建一个 AThread 类的实例并调用 start() 方法。 我的问题是: int i 似乎并没有在 while 循环中继续添加。 为什么是这个原因,如何让线程继续运行任务 写在 while 循环中。

因为我正在运行一些实时分析功能...

这是我写的真实的:

    int i = 0;
    running = true;
    while(running) {
        i++;
        System.out.println(i);            
        if((lines = bufferedReader.readLine()) != null) {
            System.out.println("analyzing");
            // read two lines per time.
            result = filter(lines, bufferedReader.readLine());
            if(!result[0].equals("emp")) {
                System.out.println("x: " + result[0] + " " + "y: " + result[1]);
                System.out.println(MainActivity.analysisKeyPress.classify(Integer.valueOf(result[0]), Integer.valueOf(result[1]), "0"));
                System.out.println("insert into db..");
                MainActivity.dbhelper.addKeyLog(getCurrentRunningService(), result[0], result[1]);
            }
        }
    }

似乎 int i 不会增加,直到有几行供 BufferedReader 读取。

最佳答案

如果你注释掉这部分:

result = filter(lines, bufferedReader.readLine());
if(!result[0].equals("emp")) {
    System.out.println("x: " + result[0] + " " + "y: " + result[1]);
    System.out.println(MainActivity.analysisKeyPress.classify(Integer.valueOf(result[0]), Integer.valueOf(result[1]), "0"));
    System.out.println("insert into db..");
    MainActivity.dbhelper.addKeyLog(getCurrentRunningService(), result[0], result[1]);
}

循环工作。

很明显,该部分中的某些方法会阻止您的代码。尝试运行调试器并逐步执行代码以查看代码停止执行的位置。这就是你的循环不继续的原因。

关于java - 一个将继续运行的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23435427/

相关文章:

android - layout_height ="match_parent"不按预期工作

android - 在 recyclerview 中多次使用 "setAdapter()"是否有问题?

android - onClick() 改变按钮边框颜色而不是改变按钮颜色

java - 删除带有 fragment 的底部导航 View

java - 预定作业中的 Spring 应用程序 URL

Java 注释 - 代码简化

android - Robolectric, Gradle, Espresso with Flavours

java - 如何从字符串中获取特定字符串(子字符串)

java - JAXB:未定义注释类型 XmlElement 的属性名称

安卓 : destroy activity before intent to another activity