我想,线程没有正确终止

时间:2015-07-13 17:29:43

标签: android java-threads

public String newUser = "false";
public double lat = 0.0, lon = 0.0;

我的Android应用程序中有以下功能(点击按钮时调用)启动一个帖子:

public void SignUpFunction(View view) {
    assignValues();
    String filledAll = checkIfFilled();
    if (filledAll.equals("true")) {
    Log.d("LIFECYCLE", "calling thread..");

    //my thread
    new validateThread().start();

    Log.d("After thread start","This log call does not occur");

    if (newUser.equals("true")) {
        Toast.makeText(this, "Please wait as we obtain your location", Toast.LENGTH_SHORT).show();
        getMyLocationFunction();
        } else {
            return;
        }
    }
}

validateThread:

class validateThread extends Thread {
    public void run() {
        Log.d("LIFECYCLE", "validateThread entered...");
        try {
                        newUser = "true";
                        Log.d("validateThread", "Validated and found new user");
        } catch (Exception e) {
            Log.d("validateThread", "Exception in validateThread: " + e.getMessage());
        }
    }
}

线程正确运行...但在最后一行之后,它不会回到它的起始点。我不明白为什么会发生这种情况,因为我之前使用过线程并且它们都正常工作。

我知道我可以在线程中提供getMyLocation函数,但我真的需要这样。

我搜索过类似的问题,但没有人帮忙..我在这里做错了什么? 提前谢谢。

1 个答案:

答案 0 :(得分:2)

这是一场比赛。 SignUpFunction应该等到validateThread决定是否设置newUser =“true”。即使在比赛中你的代码有时可能会起作用,但这是偶然的。